Save plotted lines in an matrix
조회 수: 6 (최근 30일)
이전 댓글 표시
Here's my code to obtain these two lines:
[B,L,N,A] = bwboundaries(ImgClosed);
figure
imshow(ImgClosed)
hold on;
% Loop through object boundaries
for k = 1:N
% Boundary k is the parent of a hole if the k-th column of the adjacency matrix A contains a non-zero element
if (nnz(A(:,k)) > 0)
boundary = B{k};
plot(boundary(:,2),boundary(:,1),'r','LineWidth',2);
% Loop through the children of boundary k
for l = find(A(:,k))'
boundary = B{l};
plot(boundary(:,2),boundary(:,1),'g','LineWidth',2);
end
end
end
As ImgClosed is the binary image of the object I'm analysing.
And this is the result:
I want to save both lines (red and green) in an unique matrix so i can plot them again on top of another image. How can i save them?
댓글 수: 0
채택된 답변
Kevin Holly
2022년 6월 14일
You can save the plot and extract the XData and YData from it's subfields as shown below.
[B,L,N,A] = bwboundaries(ImgClosed);
figure
imshow(ImgClosed)
hold on;
% Loop through object boundaries
for k = 1:N
% Boundary k is the parent of a hole if the k-th column of the adjacency matrix A contains a non-zero element
if (nnz(A(:,k)) > 0)
boundary = B{k};
redline = plot(boundary(:,2),boundary(:,1),'r','LineWidth',2);
% Loop through the children of boundary k
for l = find(A(:,k))'
boundary = B{l};
greenline = plot(boundary(:,2),boundary(:,1),'g','LineWidth',2);
end
end
end
figure
axes
plot(redline.XData,redline.YData,'r','LineWidth',2)
hold on
plot(greenline.XData,greenline.YData,'g','LineWidth',2);
댓글 수: 4
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!