График смежности области рисования - PullRequest
6 голосов
/ 12 марта 2019

Имея центроиды суперпикселей для изображения, есть ли какая-нибудь функция MATLAB для рисования графа смежности областей?

  L = superpixels(A, 200);
  K=regionprops(L, 'Centroid');  % Detemining centroid coordinates of each superpixels

Centroid coordinates Desired Output

PS Подобные, но не точные решения:

https://www.mathworks.com/matlabcentral/fileexchange/16938-region-adjacency-graph-rag

https://www.mathworks.com/matlabcentral/fileexchange/53614-image-graphs

1 Ответ

4 голосов
/ 12 марта 2019

Существует огромное количество способов генерации графиков из узлов, и вы не указали, какой из них вы хотите.

Тот, который похож на предоставленное вами изображение (но не то же самое), будет триангулировать домен с delaunay(). Из этого объекта можно сгенерировать объект triangulation(), который содержит больше полезной информации, чем вывод delaunay

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

Если он у вас в формате триангуляции, его можно построить с помощью triplot(), trimesh() или некоторых других. С hold on и triplot() вы найдете ближайший к фигуре, которую вы опубликовали.

Если вам нужен рабочий код, я с радостью предоставлю, если вы добавите в вопрос работающий фрагмент кода.

...