Clear Filters
Clear Filters

Detect the boundary in a 2 clustered colored image

2 views (last 30 days)
I have this image. It has 2 clustered areas, a yellow and a blue one. I also drew 2 centrized points. I want to to find out which point is closer to the boundary which is why I want the boundary in the first place. I have to note that I am aware of the coordinates of the points but I can't use a specific starting point (for example in order to use the command bwboundary, because I have about 5000 images and don't know which one the function rand() will choose each time). All of them share the same philosophy.

Accepted Answer

Image Analyst
Image Analyst on 10 Apr 2023
Edited: Image Analyst on 10 Apr 2023
You get a mask for the yellow, then call bwboundaries and then use sqrt (optional) and min:
boundaries = bwboundaries(yellowMask);
b = boundaries{1};
xb = b(:, 2);
yb = b(:, 1);
% Determine distances from point 1.
distances1 = sqrt((x1 - xb) .^ 2 + (y1 - yb) .^ 2);
minDistance1 = min(distances1)
% Determine distances from point 2.
distances2 = sqrt((x2 - xb) .^ 2 + (y2 - yb) .^ 2);
minDistance2 = min(distances2)
Knowing that you can find out if point 1 or point 2 is closer to a boundary point.

More Answers (0)

Products


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!