Как я могу сравнить два изображения в C #? - PullRequest
4 голосов
/ 17 июля 2010

Я хочу попробовать разработать приложение-след, в котором первое изображение содержит некоторый текст (предположим, что это может быть «привет мир») и это изображение, которое я хочу сравнить с другим изображением (и предположим, что это «привет») , Приведенное выше сравнение изображений, я хочу, чтобы на выходе отсутствовал текст "Мир".

Как я это сделаю?

Ответы [ 4 ]

8 голосов
/ 17 июля 2010

Это будет не так просто, как вы думаете. Если второе изображение является точной копией первого, но обрезано, вы можете создать два битовых массива и посмотреть, не перекрываются ли они. Если это не так, я предлагаю вам посмотреть эту статью об оптическом распознавании символов. В любом случае, это то, что очень трудно сделать с кодом, и если есть какой-то другой способ, я предлагаю вам принять его.

4 голосов
/ 17 июля 2010

Приведенные выше предложения хороши, если ваши изображения всегда содержат текст (для распознавания). Более общим приложением было бы использование библиотеки, такой как OpenCV - она ​​дает вам несколько способов извлечения объектов (кромки, формы, цвета и т. Д.) Из изображений и сравнения их.

Еще более простой способ - использовать метод сопоставления с шаблоном OpenCV, который "сравнивает" одно изображение (шаблон) с другим.

Поскольку вы находитесь на C #, вам следует взглянуть на Оболочку Emgu .NET для OpenCV .

1 голос
/ 17 июля 2010

Звучит так, как будто вам нужно какое-то программное обеспечение для оптического распознавания символов .Используйте OCR-пакет для создания текста, затем запустите текстовый diff.

...