Find intersection points between a line and a boundary
5 ビュー (過去 30 日間)
古いコメントを表示
I am trying to find the intersection points between a line and a boundary, how can I do it?
Code:
clc;
clear;
close all;
url='https://cdn.pixabay.com/photo/2012/04/01/17/05/brazil-23548_960_720.png';
I = imread(url);
I = rgb2gray(I);
[yDim,xDim] = size(I);
if yDim>xDim
lineLength = yDim;
else
lineLength = xDim;
end
imshow(I);
hold on;
axis on;
%Boundary
BW = imbinarize(I);
[B,L] = bwboundaries(BW,'noholes');
k=1;
stat = regionprops(I,'Centroid');
b = B{k};
c = stat(k).Centroid;
yBoundary = b(:,2);
xBoundary = b(:,1);
centroidy = c(:,2);
centroidx = c(:,1);
plot(yBoundary, xBoundary, 'g', 'linewidth', 2);
angle = 270;
xLine(1) = centroidx;
yLine(1) = centroidy;
xLine(2) = xLine(1) + lineLength * cosd(angle);
yLine(2) = yLine(1) - lineLength * sind(angle);
plot(xLine, yLine);
0 件のコメント
回答 (1 件)
参考
カテゴリ
Help Center および File Exchange で Annotations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!