Моя реализация mser неправильно определяет текстовую область, что мне делать? - PullRequest
0 голосов
/ 18 марта 2020

Я новичок в OpenCV и пытаюсь извлечь числа из набора изображений и использовать извлеченные числа в качестве набора данных для NN. Для этого я использую ограничивающие рамки mser, а затем обрезаю изображение по размеру ограничивающего прямоугольника. но mser неправильно определяет текстовую область. Пожалуйста, помогите мне, как сделать это более точно. вот мой код:

mser = cv2.MSER_create(_delta = 1)

msers, bbs = mser.detectRegions(gray)

Здесь bbs - это список ограничивающих рамок, они не находятся в текстовой области, даже не одна.

enter image description here

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

enter image description here

Ограничивающий прямоугольник от mser:

enter image description here

Другой пример ограничительной рамки mser:

enter image description here

1 Ответ

0 голосов
/ 18 марта 2020

Если вы хотите обнаружить текст на изображении, я использую Tesseract для выполнения sh этого. Вы просто связываете этот файл tessdata с языком, который вы используете, и он должен обнаружить текст на изображении и вывести его в виде строки. Однако, если вы хотите подрезать исходное изображение до того, как обнаружите текст на изображении, вы можете использовать обнаружение BLOB-объектов. Обнаружение BLOB-объектов - это когда изображение проходит через множество различных пороговых значений изображения, и оно ищет согласованность, и, если обнаружена согласованность, в этой области создается BLOB-объект. В этой ситуации вы можете использовать обнаружение BLOB-объектов, а затем создать ограничивающие прямоугольники из этих BLOB-объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...