How to use "gplot" function?
조회 수: 2 (최근 30일)
이전 댓글 표시
Hey Every body;
I want to graph a matrix using "gplot" function, i had get the each object boundary in the image using the following:
[B L N A]=bwboundaries(bw,'noholes');
through that function i got 4 output: L for label matrix / N is no. of object found/ A is adjacent matrix...
To graph that labeled image i have 2 thoughts :
1- consider each boundray as a separate matrix a get it's coordinates and plot
as follow
[i j]=find(cell2mat(B(2,:));
gplot(B(2,:), [i j]);
but the result is a separate straight line!!
2- consider each connected component in the labeled matrix as anode then get it's coordinate and plot graph connecting those nodes
(i think that the second option is more reliable but i don't know how to implement regarding my poor )
Thanks A lot
댓글 수: 0
채택된 답변
Kelly Kearney
2013년 7월 5일
I assume you want to plot based on the adjacency matrix A? You'll have to figure out exactly how to define an objects coordinates... an edge point? The centroid?
In the example below, I've just chosen the first point of each boundary. Is this similar to what you're looking for?
BW = imread('blobs.png');
[B, L, N, A] = bwboundaries(BW,'noholes');
xy = cell2mat(cellfun(@(x) [x(1,2) x(1,1)], B, 'uni', 0));
figure;
imshow(BW)
hold on
plot(xy(:,1), xy(:,2), 'b.')
gplot(A, xy, 'r');
댓글 수: 2
Kelly Kearney
2013년 7월 8일
Sorry, I really don't understand what you're trying to do. Are you trying to identify a single object in a binary image, and then graph the connectivity of the pixels that make up that single object (i.e. 4-way or 8-way connectedness used to identify an object)? Or are you looking for the connectivity of multiple object in an image, as returned by bwboundaries (i.e. whether one object is within another)?
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Graphics Object Properties에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!