Я хочу преобразовать круглую текстовую область в прямоугольную текстовую область для процесса OCR. Я использовал функцию logpolar() opencv. Иногда это дает хорошие результаты, но иногда текст кажется разделенным на две части в соответствии с положением области текста на круге. Процесс OCR работает хорошо (с Tesseract + OpenCV). Но моя текстовая область не находится в фиксированном положении, и текст всегда создается с 10 цифрами. Мне нужно решение, которое работает во всех возможных состояниях. объяснение проблемы:
Я написал свой код в соответствии с этот пост а>. Сначала я выбрал область интереса, а затем обработал эту область интереса (позже я напишу код для фиксированного выбора области интереса). Я пробовал все возможные значения параметров с помощью трекбаров. Но результаты не очень
Пожалуйста, посмотрите мой код и другие результаты.
Хороший результат, я всегда хочу получить что-то вроде этого:
Плохой результат:
Плохой результат:
Мой код;
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);
Я хочу всегда извлекать текстовую область одной частью. Как я могу решить эту проблему?