2014-01-22 6 views
3

Я пытаюсь сделать текст в изображении более чистым и понятным перед запуском OCR с помощью tesseract. В this link они предоставили хорошие сценарии, чтобы сделать это с помощью ImageMagicK. Интересно, можно ли преобразовать этот скрипт и функцию в код OpenCV? Например, сценарий с аргументами, как это:Очистка текста в OpenCV как сценарий ImageMagicK

-g -e none -f 15 -o 20 

Из объяснений:

-g ...................... convert document to grayscale before enhancing 
-e .... enhance ......... enhance image brightness before cleaning; 
         choices are: none, stretch or normalize; 
         default=none 
-f .... filtersize ...... size of filter used to clean background; 
         integer>0; default=15 
-o .... offset .......... offset of filter in percent used to reduce noise; 
         integer>=0; default=5 

Как я могу сделать то же самое в OpenCV коде? Поскольку я новичок в OpenCV, я только знаю, как преобразовать в оттенки серого. Любая помощь будет оценена по достоинству.

+0

чистильщиком, вы имеете в виду «бинаризовать»? Добавьте пример изображения до/после предварительной обработки – remi

ответ

1

Вы должны проверить ImageMagick документацию, чтобы найти точные алгоритмы, используемые, но здесь это грубая догадка:

-g ...................... convert document to grayscale before enhancing 

Это будет либо cv::cvtColor с BGR2GRAY преобразования или даже лучше, нагрузки непосредственно ваше изображение в оттенках серого с cv::imread(filename,CV_LOAD_IMAGE_GRAYSCALE)

-e .... enhance ......... enhance image brightness before cleaning; 
         choices are: none, stretch or normalize; 
         default=none 

Поскольку вы выбрали «none», это было бы нечем. В противном случае используйте cv::equalizeHist (tutorial).

-f .... filtersize ...... size of filter used to clean background; 
         integer>0; default=15 
-o .... offset .......... offset of filter in percent used to reduce noise; 
         integer>=0; default=5 

Моя догадка для двух последних параметров cv::adaptiveThreshold с -f соответствующий в в blockSize параметров в OpenCV и -o к постоянному C. Фактический метод адаптивного порогового значения (гауссовский или средний) - это то, что вам нужно проверить в документации ImageMagick

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