Обнаружение частичных форм на изображении - PullRequest
1 голос
/ 25 мая 2020

Я пытаюсь обнаружить формы на изображении, где эти формы могут быть немного перекошенными / деформированными или неполными. Фигура состоит из линии и ар c (это маркировка на футбольном поле). Приведу пример.

Форма для обнаружения:

shape

Изображение для поиска:

image

Я пробовал несколько подходов:

1) с использованием SimpleBlobDetector из OpenCV. Это определяет округлую форму, которая является штрафной площадью ar c, но не соответствует ей в точности. Это некоторая отправная точка, но я беспокоюсь, что она недостаточно надежна, потому что она, например, не обнаружила другой неполный круг (на половине линии). SimpleBlobDetector

2) Я также пробовал определять круги с помощью HoughCircles из OpenCV, но ничего не было обнаружено.

3) Я также пробовал определять контуры на базовом изображении и сравнивая их с формой, используя matchShapes OpenCV. Это дало много ложных срабатываний.

4) Наконец, у меня возникла идея специальной реализации, которая будет идентифицировать все вертикальные линии на изображении (с HoughLinesP из OpenCV), а затем пытаться «смахнуть» изображение формы (показанное на первом изображении этого поста) вниз по каждой строке, вычисляя% совпадающих пикселей (в данном случае это будут пиксели, которые добавляются к 255). Я еще не реализовал это полностью, так как вижу некоторые проблемы с этим: скорость и возможные деформации искомых форм (что видно даже на примерах, которые я вставил).

Я буду благодарен за некоторые подсказки, как подойти к этой проблеме.

...