Detect the boundary in a 2 clustered colored image

2 次查看(过去 30 天)
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.

采纳的回答

Image Analyst
Image Analyst 2023-4-10
编辑:Image Analyst 2023-4-10
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.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Image Processing Toolbox 的更多信息

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by