Страницы

Поиск по вопросам

вторник, 10 декабря 2019 г.

Максимально быстрое сравнение 2х скриншотов

#c_sharp #vbnet


Есть три скриншота. на них короткий текст с кодом типа X123XX123.


белый текст на темном фоне (без искажений)
красный текст на темном фоне (без искажений, текст совпадает с 1.)
белый текст на том же фоне что и всегда, но код другой. (без
искажений)


Какой способ сравнения выбрать для быстрого сравнения вариантов 1-2 и 2-3?


1-2 Необходимо удостовериться что текст тот же но он стал красным.
2-3 Удостовериться что текст стал другим.



  Скриншоты размером около 150х80px.

    


Ответы

Ответ 1



Можно попробовать так static bool Equality(Bitmap Bmp1, Bitmap Bmp2) { var pixelTrue = 0.0; var pixelFalse = 0.0; if (Bmp1.Size == Bmp2.Size) { for (int i = 0; i < Bmp1.Width; i++) for (int j = 0; j < Bmp1.Height; j++) { var pixel1 = Bmp1.GetPixel(i, j); var pixel2 = Bmp2.GetPixel(i, j); if (pixel1 != pixel2) pixelFalse++; else pixelTrue++; } } else return false; var percentResult = (pixelTrue/(pixelTrue + pixelFalse))*100; return percentResult >= 97; } Хотя шаг можно и увеличить!

Комментариев нет:

Отправить комментарий