gpt4 book ai didi

matlab - 填充二值图像中未完全闭合的区域

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:17 25 4
gpt4 key购买 nike

在 MatLab 中,我有一个二值图像,我正在尝试填充一个洞。问题是该区域大部分(但并非完全)关闭。是否有任何现有的视觉处理功能可以做到这一点?我必须编写自己的算法吗?

原始/期望

enter image description here enter image description here

另一个单独的问题是我无法检测二值图像中的细尾状结构。我需要移除这些类型的结构而不移除它所连接的更大的物体。是否有任何现有的视觉处理功能可以做到这一点?我必须编写自己的算法吗?

原始/期望

Original Image Desired Image

最佳答案

在第一个例子中,你可以使用imclose进行扩张,然后进行侵 eclipse 以关闭这些边缘。然后你可以跟进 imfill将其完全填写。

img = imread('http://i.stack.imgur.com/Pt3nl.png');
img = img(:,:,1) > 0;

% You can play with the structured element (2nd input) size
closed = imclose(img, strel('disk', 13));
filled = imfill(closed, 'holes');

enter image description here同样,对于第二组图像,您可以使用 imopen (先腐 eclipse 后膨胀)去除尾部。

img = imread('http://i.stack.imgur.com/yj32n.png');
img = img(:,:,1);

% You can play with the structured element (2nd input) size
% Increase this number if you want to remove the legs and more of the tail
opened = imopen(img, strel('disk', 7));

enter image description here

更新

如果你想要上面“封闭”图像的中心开口的质心,你可以通过从 filled 中减去 closed 得到一个掩码,它就是这个开口。

% Find pixels that were in the filled region but not the closed region
hole = filled - closed;

% Then compute the centroid of this
[r,c] = find(hole);
centroid = [mean(r), mean(c)];

enter image description here

关于matlab - 填充二值图像中未完全闭合的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37754675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com