Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ImageMagick Sharp比较敏感_C#_Imagemagick - Fatal编程技术网

C# ImageMagick Sharp比较敏感

C# ImageMagick Sharp比较敏感,c#,imagemagick,C#,Imagemagick,我试着比较两张图片。我复制了我正在使用的原始jpeg,并在上面画了一条小线 然后我运行了下面的代码,使用原始的和修改过的JPEG,最后得到了一个非常红的图像 static void Main(string[] args) { Console.WriteLine("Hello World!"); MagickNET.SetTempDirectory(@"C:\scratch"); MagickImage oldImage = new Magi

我试着比较两张图片。我复制了我正在使用的原始jpeg,并在上面画了一条小线

然后我运行了下面的代码,使用原始的和修改过的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”,但我看不出如何将其应用于我的代码。

JPEG是一种有损压缩,因此保存它会更改值。您应该使用PNG或TIFF而不是JPG来执行此操作。不过,您应该能够在ImageMagick命令行比较中使用-fuzz<代码>比较-模糊20%-度量rmse图像1图像2差异图像

输入1:

输入2:

比较无模糊:

compare -metric rmse lena.jpg lena2.jpg diffimage.png

与fuzz相比:

compare -fuzz 20% -metric rmse lena.jpg lena2.jpg diffimage2.png

对不起,我不知道其他API中的等效项