ImageMagick Sharp 比较敏感
ImageMagick Sharp Compare too sensitive
我正在尝试比较两张图片。我复制了一份我正在使用的原始 jpeg,并在上面画了一条小线。
然后我运行下面的代码,使用原来的和改变的jpegs,并且非常红。
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
MagickNET.SetTempDirectory(@"C:\scratch");
MagickImage oldImage = new MagickImage(@"C:\Users\Craig\Pictures\orig.jpg");
MagickImage newImage = new MagickImage(@"C:\Users\Craig\Pictures\changed.jpg");
newImage.Crop(oldImage.BaseWidth, oldImage.BaseHeight);
using (MagickImage diffImage = new MagickImage())
{
double diff = oldImage.Compare(newImage, ErrorMetric.Absolute, diffImage);
Console.WriteLine($"Diff is {diff}...");
diffImage.Write(@"C:\Users\Craig\Pictures\diff.jpg");
Console.ReadKey();
}
}
我认为问题是,它太准确了,并且 jpeg 被修改了一点(有损?)。有没有办法让它平静下来,寻找更大的变化?因为如果你看图片,右下角,你可以看到我画的笑脸(只有嘴巴和眼睛)。可能是底部右边1.5cm,右边1.5cm。
我认为答案是 'Fuzz',但我不知道如何将其应用到我的代码中。
JPEG 是一种有损压缩,因此只需保存它就会更改值。您应该使用 PNG 或 TIFF 而不是 JPG 来执行此操作。尽管如此,您应该能够在 ImageMagick 命令行比较中使用 -fuzz。 compare -fuzz 20% -metric rmse image1 image2 diffimage
输入1:
输入2:
比较没有模糊:
compare -metric rmse lena.jpg lena2.jpg diffimage.png
与模糊比较:
compare -fuzz 20% -metric rmse lena.jpg lena2.jpg diffimage2.png
抱歉,我不知道其他 API 中的等效项。
我正在尝试比较两张图片。我复制了一份我正在使用的原始 jpeg,并在上面画了一条小线。
然后我运行下面的代码,使用原来的和改变的jpegs,并且非常红。
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
MagickNET.SetTempDirectory(@"C:\scratch");
MagickImage oldImage = new MagickImage(@"C:\Users\Craig\Pictures\orig.jpg");
MagickImage newImage = new MagickImage(@"C:\Users\Craig\Pictures\changed.jpg");
newImage.Crop(oldImage.BaseWidth, oldImage.BaseHeight);
using (MagickImage diffImage = new MagickImage())
{
double diff = oldImage.Compare(newImage, ErrorMetric.Absolute, diffImage);
Console.WriteLine($"Diff is {diff}...");
diffImage.Write(@"C:\Users\Craig\Pictures\diff.jpg");
Console.ReadKey();
}
}
我认为问题是,它太准确了,并且 jpeg 被修改了一点(有损?)。有没有办法让它平静下来,寻找更大的变化?因为如果你看图片,右下角,你可以看到我画的笑脸(只有嘴巴和眼睛)。可能是底部右边1.5cm,右边1.5cm。
我认为答案是 'Fuzz',但我不知道如何将其应用到我的代码中。
JPEG 是一种有损压缩,因此只需保存它就会更改值。您应该使用 PNG 或 TIFF 而不是 JPG 来执行此操作。尽管如此,您应该能够在 ImageMagick 命令行比较中使用 -fuzz。 compare -fuzz 20% -metric rmse image1 image2 diffimage
输入1:
输入2:
比较没有模糊:
compare -metric rmse lena.jpg lena2.jpg diffimage.png
与模糊比较:
compare -fuzz 20% -metric rmse lena.jpg lena2.jpg diffimage2.png
抱歉,我不知道其他 API 中的等效项。