OpenCV или ImageMagick для выделения различий - PullRequest
1 голос
/ 30 марта 2012

Я работаю над проектом, в котором мне нужно выделить разницу между парой отсканированных изображений текста.

Примеры изображений: здесь и здесь .

Я создаю веб-приложение на основе HTML, JS для этого. Я обнаружил, что openCV поддерживает выделение различий между двумя изображениями. Также я увидел, что imageMagick также имеет такую ​​поддержку. Есть ли в openCV поддержка для автоматической регистрации изображений? И есть ли модуль JS для openCV? Какой из них больше подходит для моих целей?

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

1. Упрощенный способ:

Предположим, что изображения идеально выровнены и освещены одинаково: вычтите одно изображение из другого пикселя за пикселем, затем пороговое значение результата, отфильтруйте шумные пятна ивыберите самые большие.Подходит для школьного проекта

2. Немного сложнее: выровняйте изображения, затем найдите способ выровнять освещение, затем примените упрощенный способ.Как выровнять:

  • Найти текстовую область на двух изображениях, поскольку она темнее, чем цвет файла.
  • Найдите его углы
  • Используйте getPerspectiveTransform (), чтобы найти преобразование между изображениями.
  • warpPerspective () от одного изображения к другому.

Еще один способ зарегистрировать два изображения - сопоставить функции.Он имеет довольно обширную поддержку в OpenCV.И findHomography () оценит позу между двумя изображениями из большего набора совпадающих точек.

3. Канонический ответ: выровняйте изображение.Преобразуйте его в текст с помощью механизма OCR.Сравните текст на двух изображениях.

1 голос
/ 31 марта 2012

Что ж, помимо большой помощи, оказанной vasile, вам также понадобится ответ для веб-приложения. Чтобы заставить его работать на сервере, вам, вероятно, понадобится форма загрузки файла, а также ответ от сервера с примененным алгоритмом. Есть несколько способов сделать это в зависимости от имеющихся у вас ограничений сервера. Если вы можете запустить аргументы командной строки, вам, возможно, потребуется реализовать алгоритм выделения в opencv и передать два входных файла в выходной для программы. Сценарий php должен использоваться для загрузки файлов, вызова программы командной строки и вывода результата пользователю. Другим подходом может быть использование java и JavaCV в веб-контейнере, например, в Apache Tomcat.

С уважением, Daniel

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