Проверьте, есть ли линия между двумя конечными точками или нет, opencv
Я использую OpenCV для обнаружения фигур, я должен определить форму, как это
это будет нарисованное от руки изображение, и я использую kinect для обнаружения изображения путем проверки кадров. Теперь я получаю 6 баллов за снимки такого типа, убирая шум, обнаружение краев, нахождение контуров и, кроме того, теперь я не могу обнаружить, что фигура направлена вправо, влево, вниз или вверх. По мере изменения местоположения точек для каждой картинки.
Поэтому я хочу знать, учитывая две точки, как я могу проверить, есть ли отрезок между точками или нет. Получив там две точки, я могу вычислить из оставшейся точки положение, на которое указывает фигура.
Если у кого есть лучшее решение, пожалуйста, поделитесь.
1 ответ
Предположим, у вас есть две конечные точки, и ваш линейный сегмент имеет значение пикселя больше нуля (на изображении выше вам может потребоваться использовать двоичный порог в инвертированном виде).
Создайте изображение маски, нарисовав линию толщиной =1 пиксель.
Скопируйте исходное изображение в новый Mat, используя вышеуказанную маску.
Теперь посчитайте ненулевой пиксель в результирующем мате,
- если он равен нулю, то между точками нет линии,
- и если число, отличное от нуля, дает значение, вы можете перепроверить его, сравнивая с длиной линии, которую вы нарисовали в маске.