Проверьте, есть ли линия между двумя конечными точками или нет, opencv

Я использую OpenCV для обнаружения фигур, я должен обнаружить форму, как это введите описание изображения здесь

это будет нарисованное от руки изображение, и я использую kinect для обнаружения изображения путем проверки кадров. Теперь я получаю 6 баллов за снимки такого типа, убирая шум, обнаружение контуров, нахождение контуров и затем приближение прибл., Теперь я не могу обнаружить, что фигура направлена ​​вправо, влево или вниз. По мере изменения местоположения точек для каждой картинки.

Поэтому я хочу знать, учитывая две точки, как я могу проверить, есть ли отрезок между точками или нет. Получив там две точки, я могу вычислить из оставшейся точки положение, на которое указывает фигура.

Если у кого есть лучшее решение, пожалуйста, поделитесь.

0

Решение

Предположим, у вас есть две конечные точки, и у вашего сегмента линии значение пикселя больше нуля (на изображении выше вам может понадобиться использовать двоичный порог с инверсией).

  1. Создайте изображение маски, нарисовав линию толщиной = 1 пиксель.

  2. Скопируйте исходное изображение в новый Mat, используя вышеуказанную маску.

  3. Теперь посчитайте ненулевой пиксель в результирующем мате,

    • если он равен нулю, то между точками нет линии,
    • и если число, отличное от нуля, дает значение, вы можете перепроверить его, сравнивая с длиной линии, которую вы нарисовали в маске.
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]