我试着比较两张图片。我复制了我正在使用的原始jpeg,并在上面画了一条小线。
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.5厘米,右侧1.5厘米。
我认为答案是“Fuzz”,但我不知道如何将其应用到我的代码中。