我有一个包含4个blob的二进制图像。其中3个的宽高比大于1.而1的宽高比为1.现在我想减少二进制图像中宽高比大于1的blob。我怎么能这样做有人可以提供代码吗?
这是二进制图像的链接。我想减少宽高比大于1的3个blob。只想保持那个三角形。
答案 0 :(得分:0)
您可以使用regionprops
,例如:
s=regionprops(bw,'BoundingBox','PixelIdxList');
其中bw
是您的二进制图片。
s.BoundingBox
的输出是[x,y,width,height]向量
你可以循环s
for i=1:numel(s)
ar(i) = s(i).BoundingBox(3)/s(i).BoundingBox(4)
end
并查看宽度/高度比ar
(或任何您定义的宽高比)是否大约等于1(因为噪音我的值为ar> 1.2)。然后,对于i
使用,您可以使用像素列表s(i).PixelIdxList
bw(s(ar>1.2).PixelIdxList)=0;
将这些强度归零......