Зачем изменять контуры MSER перед обнаружением текстов?


person Shreyas Moolya    schedule 27.08.2019    source источник
comment
Какой у Вас вопрос? Что делает numpy.rehsape()? Почему первый аргумент -1? Или почему вывод mser.detectRegions() и ввод cv2.convexHull() имеют разный формат?   -  person zteffi    schedule 27.08.2019


Ответы (1)


Неважно, меняете вы форму или нет.

Переоформление ненужно. cv2.convexHull() может принимать любой входной формат. Следующие изображения показывают, что результаты одинаковы независимо от того, изменена форма contours в regions или нет.

hulls = [cv2.convexHull(p.reshape(-1, 1, 2)) for p in regions]
hulls1 = [cv2.convexHull(p) for p in regions]

они одинаковые

Вот как изменяется контур p при изменении формы:

>>> p
array([[305, 382],
       [306, 382],
       [308, 380],
       [309, 380]...


>>> p.reshape(-1, 1, 2)
array([[[305, 382]],    
       [[306, 382]],    
       [[308, 380]],    
       [[309, 380]]...
person Stephen Meschke    schedule 27.08.2019
comment
На этом изображении нет большой разницы, но у него могут быть другие области контура на других изображениях, хотя я не проверял это на других изображениях. - person Shreyas Moolya; 28.08.2019