2017-01-12 5 views
0

После сегментации входного изображения выглядит следующим образом: segmented imageКак обнаружить линии края в OpenCV

Теперь, как мне определить краевые линии, показанные ниже: edges to detect

Я попытался HoughLines, но это, казалось, возвращает только нижнюю строку.

Моя цель состоит в том, чтобы обрезать отмеченную область в следующем изображении: crop area

ответ

0

Если у вас всегда есть такие хорошие края (кромки без отверстий) для вашего большого прямоугольника, и все компоненты внутри этого прямоугольника всегда значительно меньше, вы можете использовать connectedComponentsWithStats(), который даст края с их длиной, а затем выберите самые длинные края. В Python:

nb_edges, output, size, centroids = cv2.connectedComponentsWithStats(image, connectivity=8) 
#then select the edge with the biggest size 
+0

Не могли бы вы рассказать о том, как я могу найти края? пытаясь 'connectedComponentsWithStats' в java, я нашел помеченное изображение, которое имеет только внутренние компоненты, имеющие закрытый путь, и матрицу статистики, которая содержит прямоугольники для этих компонентов. где я должен искать линии? – Mehedi

Смежные вопросы