How to find vertices of triangle approximated from binary image
7 次查看(过去 30 天)
显示 更早的评论
The purpose is to analyse uniformity of images like below(The shape changes slightly based on device parameters).
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1239812/image.png)
I need to find the areas of 3 sub regions drawn by connecting centroid to 3 vertices.
The movement of centroid and variation in these sub areas are required for further analysis(with different device parameters).
For this, cordinates of vertices are required.
(Centroid is obtained from regionprop/blob analysis)
I know that this image is not in actual triangle shape. But is there any method to find the 3 vertices by any approximation method?
I could not find a solution with bounding box, bwboundaries...
0 个评论
采纳的回答
Image Analyst
2022-12-22
You can find the centroid, then the distance of the perimeter to the centroid and then call findpeaks on that distance to find the 3 vertexes. I do that in my attached demo.
更多回答(1 个)
KSSV
2022-12-22
I = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1239812/image.png') ;
[y,x] = find(I) ;
mx = mean(x) ; my = mean(y) ;
d = sqrt((mx-x).^2+(my-y).^2) ;
idx = isoutlier(d) ;
x(idx) =[] ; y(idx) =[] ;
idx = convhull(x,y) ;
x = x(idx) ; y = y(idx) ;
imshow(I)
hold on
plot(x,y,'.-r')
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Processing Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!