Преобразование круглой текстовой области в прямоугольную область для процесса распознавания - OpenCV C ++ - PullRequest
0 голосов
/ 09 июня 2018

Я хочу преобразовать круговую текстовую область в прямоугольную текстовую область для процесса распознавания. Я использовал функцию logpolar () opencv.Иногда это дает хорошие результаты, но иногда текст кажется разделенным на две части в соответствии с положением текстовой области на круге.Процесс распознавания текста работает хорошо (с Tesseract + OpenCV).Но моя текстовая область не в фиксированной позиции и текст всегда создается из 10 цифр.Мне нужно решение, которое работает во всех возможных состояниях.Объяснение проблемы:

problem explanation

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

Пожалуйста, посмотрите мой код и другие результаты.

Хороший результат, я всегда хочу получить что-то вроде этого:

gd

Плохой результат:

bd

Плохой результат:

bd

Мой код;

int radius = 80;
int dr = 95;
logPolar(imcrop, polarr, Point2f(radius + dr, radius + dr), 30, WARP_FILL_OUTLIERS);
cv::rotate(polarr, finall, ROTATE_90_COUNTERCLOCKWISE);
resize(finall, finall, Size(640, 480));
threshold(finall, thresholded, 250, 255, THRESH_BINARY + THRESH_OTSU);

Я хочу извлекать текстовую область всегда одним куском.Как я могу решить эту проблему?

...