ImageMagick Sharp Сравнить слишком чувствительный - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь сравнить два изображения.Я сделал копию оригинального 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();
        }

    }

enter image description here

Я думаю, что проблема в том, что это слишком точно, и jpeg немного изменен (с потерями?).Есть ли способ успокоить его и посмотреть на большие изменения?Потому что, если вы посмотрите на изображение внизу справа, вы увидите улыбающееся лицо, которое я нарисовал (только рот и глаза).Может быть 1,5 см справа внизу и 1,5 см справа.

Я думаю, что ответ «Fuzz», но я не понимаю, как применить это к моему коду.

1 Ответ

0 голосов
/ 04 декабря 2018

JPEG - это сжатие с потерями, поэтому простое сохранение изменяет значения.Вы должны делать это с PNG или TIFF, а не с JPG.Тем не менее, вы должны иметь возможность использовать -fuzz в сравнении командной строки ImageMagick.compare -fuzz 20% -metric rmse image1 image2 diffimage

Вход 1:

enter image description here

Вход 2:

enter image description here

Сравнить без пуха:

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


enter image description here

Сравнить с пушом:

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


enter image description here

Извините, я не знаю эквивалента в других API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...