Как создать одну линию / ребро из набора наложенных линий / ребер в MATLAB? - PullRequest
1 голос
/ 06 декабря 2011

У меня есть набор краев, обнаруженных на изображении с помощью детектора краев набора инструментов MATLAB для компьютерного зрения. Все эти ребра (18 из них) просто образуют две линии. Как мне получить линии от этих краев? Все, что меня интересует, - это найти точку пересечения этих двух линий.

края похожи enter image description here

и неровные линии выглядят как enter image description here

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Сайт CV Питера Ковеси содержит большой набор функций для обнаружения линий.Посмотрите на этот пример их использования.

0 голосов
/ 08 декабря 2011

Поскольку вы упомянули, что цель состоит в том, чтобы найти «центральную точку», здесь возможный путь (хотя и не специфичный для MATLAB):

Уточнения: когда вы упоминаете

Всеэти ребра (18 из них) просто образуют две линии

На самом деле образуются два компонента или контуры .Преобразование линии Хафа даст вам прямые линии: не совсем то, что вы хотели, кажется.

Кроме того, две "линии" или "контуры" не пересекаются по крайней мере с тем, что видно на рисунке.Если вы хотите найти точку ближайшего сближения, пройдитесь по каждой точке по одному контуру и проверьте расстояние между этой точкой и точками по второму контуру.Найдите минимальное расстояние для каждой точки контура.Затем выберите минимум из этого.

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

...