Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
C# Сравнение двух картинок |

06.06.2010, 20:52
|
|
Познающий
Регистрация: 07.08.2009
Сообщений: 85
Провел на форуме: 705829
Репутация:
53
|
|
C# Сравнение двух картинок
Здравствуйте, нужен совет.
Я делаю скриншот получаю картинку, делаю второй скриншот и нужно узнать какая была разница с первым и вторым скриншотом.
Решение
1. По пикселям – долгий вариант.
2. По байтам – проблема, поскольку файлы всегда разные по размеру.
Возможно решение поставить фиксированный размер на скриншот.

Последний раз редактировалось noxjoker; 06.06.2010 в 20:58..
|
|
|

06.06.2010, 21:03
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
Что если поделить картинку на зоны, скажем на 4. Потом сравнивать каждую зону с каждой, если они разные, поделить зону ещё раз и сравнить каждую часть.
|
|
|

06.06.2010, 21:05
|
|
Познающий
Регистрация: 07.08.2009
Сообщений: 85
Провел на форуме: 705829
Репутация:
53
|
|
scrat а как сравнивать? По пиксельно долго ...
|
|
|

06.06.2010, 21:06
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
погугли ещё по запросу «image diff», может найдёшь какую библиотеку.
|
|
|

06.06.2010, 21:07
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
Сообщение от noxjoker
scrat а как сравнивать? По пиксельно долго ...
вырезать и сравнить md5
|
|
|

06.06.2010, 21:08
|
|
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме: 3516666
Репутация:
439
|
|
scrat, какое это даст приемущество перед проверкой целой картинки? 1 = 4/4
|
|
|

06.06.2010, 21:09
|
|
Познающий
Регистрация: 07.08.2009
Сообщений: 85
Провел на форуме: 705829
Репутация:
53
|
|
Допустим они разные мне ж, потом нужно что-то заменить в первой картинке!
Например:
Если по пиксельное, то я узнаю какие пиксели разные потом изменяю их в первой картинке и получаю копию второй.
|
|
|

06.06.2010, 21:13
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
Сообщение от BrainDeaD
scrat, какое это даст приемущество перед проверкой целой картинки? 1 = 4/4
в том то и дело, что может быть и 3/4 и 2/4 и 1/4.
|
|
|

06.06.2010, 21:22
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
для чего сравнивать надо? просто узнать о наличии различий(тогда можно обходить попиксельно но с изменяемым шагом до первой разницы, например проверяем каждый сотый пиксел, если совпали, то сдвигаем на один пиксель и заново проходим, и так 100 раз для проверки всей картинки. на худой конец никто не отменял многоядерность, плюс на хабре была тема про медленность попиксельной обработки
http://habrahabr.ru/blogs/net/92016/
http://habrahabr.ru/blogs/net/60085/
Если же обработка пикселов с разными значениями чтобы выравнять картинки - только попиксельный проход.
|
|
|

06.06.2010, 21:26
|
|
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме: 3516666
Репутация:
439
|
|
Сообщение от scrat
в том то и дело, что может быть и 3/4 и 2/4 и 1/4.
а, понял. в смысле, если 1/4 различна, то не нужно продолжать проверку. тогда вопрос в том, сколько частей оптимально? ведь проверить 1/8 быстрее, чем 1/4, и проверка может быть завершена уже после первой зоны. но в худшем случае придётся провести 8 проверок. так же можно уменьшить зону до пикселя, что усугубит ситуацийю для worst case, но сильно улучшит для best case.
Последний раз редактировалось BrainDeaD; 06.06.2010 в 21:28..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|