Извлечение символов с использованием connectedComponentsWithStats - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь извлечь символы, используя connectedComponentsWithStats из openCV.Пробовал ранее с использованием findContours, но этот метод не очень хорошо работает с различными изображениями.

Примечание Я не хочу использовать какие-либо методы ML, поскольку не хочу сравнивать анализ связанных компонентов с сегментацией с использованием анализа гистограммы.
Вот изображение:

enter image description here

Я использую извлеченный номерной знак из изображения.Он предварительно обработан порогом OTSU.

Вот мой код.

img = cv2.imread("./T1.png", 0);
binary_map = (img > 0).astype(np.uint8)
connectivity = 8
num_labels, labels, stats, centroids =
cv2.connectedComponentsWithStats(binary_map, connectivity, cv2.CV_32S) ` 

Задача будет тривиальной, если использовать статистику из функции подключенных компонентов.Я ожидал получить такую ​​статистику: stats[labels[1], cv2.CC_STAT_WIDTH] вернет мне одно значение, но я получаю массив, поэтому я запутался здесь. Должен ли он вести себя так?Или что-то не так с моим форматом изображения?

В результате я хочу нарисовать прямоугольники вокруг каждого возможного символа.Должен ли я использовать центроиды или статистику?Как это должно выглядеть?

...