2012-03-30 5 views
1

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

Примеры изображений here и here.

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

+0

Эта задача не тривиальная. – karlphillip

ответ

2

1. упрощенно:

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

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

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

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

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

+0

thanks.Is findPrespective часть библиотеки openCV? – code4fun

+0

ok, имя функции - 'getPerspectiveTransform()'; – Sam

+0

, на самом деле у меня был начальный успех при использовании ImageMagick, но теперь я работаю над более сложными текстовыми изображениями, такими как здесь. Http: // Imgur.com/YJekv, Xpebk # 0 Можете ли вы предложить, если для этих изображений можно использовать сопоставление функций OpenCV, так как размер букв также отличается от этих изображений – code4fun

1

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

С наилучшими пожеланиями, Daniel

Смежные вопросы