finding covered regions created by intersecting random lines
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
hey, i am trying to find covered areas by random lines as seen in the figure (i need to produce much complex structures). The intersects (or node points) are kept in a Sparse matrix. (I manually added a red dot as an example)

2 Kommentare
John D'Errico
am 14 Mär. 2021
Are you looking only for regions that are entirely enclosed in 2-d by some set of line segments?
Antworten (1)
darova
am 14 Mär. 2021
Here is the method using bwlabel
clear
clc
I = zeros(100);
% random coordinates of lines
x = rand(20,2)*98+1;
y = rand(20,2)*98+1;
% horizontal and vertical lenghts
dx = abs(diff(x,[],2));
dy = abs(diff(y,[],2));
for i = 1:size(x,1)
n = max(dx(i),dy(i)); % max length
n = round(n);
x1 = linspace(x(i,1),x(i,2),n);
y1 = linspace(y(i,1),y(i,2),n);
ind = sub2ind(size(I),round(y1),round(x1));
I(ind) = 1; % burn line
end
[I1,m] = bwlabel(~I,4); % separate each region
imshow(I1,rand(n,3))

0 Kommentare
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!