2015-07-08 2 views
9

Я работаю с Opencv для своего проекта. Мне нужно, чтобы преобразовать изображение ниже порогового изображенияПороговое изображение с использованием opencv (Java)

Original Image

Я попробовал эту функцию:

Imgproc.threshold(imgGray, imgThreshold, 0, 255, Imgproc.THRESH_BINARY + Imgproc.THRESH_OTSU); 

Но результат был не так хорош, как вы видите ниже

threshold

Итак, я попробовал adaptiveThreshold function:

Imgproc.adaptiveThreshold(imgGray, imgThreshold, 255, Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C, Imgproc.THRESH_BINARY, 11, 2); 

и это привело:

adaptiveThreshold

Я просто ожидать бинарное изображение с белым фоном и черным текстом только не черный области или шум (я не предпочитаю использовать Photo.fastNlMeansDenoising, потому что это занимает много время). Пожалуйста, помогите мне с решением для этого.

Кроме того, я использую Tesseract для японского распознавания, но точность не является хорошей. Есть ли у вас какие-либо предложения по улучшению OCR для японцев или какой-либо метод улучшения качества Tesseract?

+0

Это было долгое время, так как я использовал OpenCV, так что может быть болтливая болтовня. Вы не можете найти контуры и белое все вне контура и черное все внутри контура? Изображение результата должно быть довольно четким и точным, учитывая тип ввода. –

ответ

12

adaptiveThreshold - правильный выбор здесь. Просто нужно настроить litte. С этими параметрами (это C++, но вы можете легко перевести на Java)

Mat1b gray= imread("path_to_image", IMREAD_GRAYSCALE); 
Mat1b result; 
adaptiveThreshold(gray, result, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, 40); 

результирующее изображение:

enter image description here

+0

Большое спасибо. Это отлично работает для меня. Я просто не понимаю смысл последнего параметра (40). Не могли бы вы объяснить это? –

+0

@BeeBee Это постоянная вычитаемая из среднего. Прочтите [opencv doc] (http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html#adaptivethreshold) для получения дополнительной информации – Miki

+0

Я знаю его старый поток, но вы мне тоже помогли. –

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