如何使用纵横比减少斑点?
How to reduce blob using aspect ratio?
我有一个包含 4 个斑点的二进制图像。其中 3 个的纵横比大于 1。1 个的纵横比为 1。现在我想减少二值图像中纵横比大于 1 的斑点。我怎么能这样做。有人可以提供一个代码吗??
这里是一张link的二进制图像。我想减少纵横比大于 1 的 3 个斑点。并且只想保持三角形形状。
您可以为此使用 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
并查看 width/height 比率 ar
(或您定义的纵横比)是否大约大于 1(由于噪音,我会取 ar>1.2 的值)。然后对于 i
使用你可以使用像素列表 s(i).PixelIdxList
bw(s(ar>1.2).PixelIdxList)=0;
将这些强度归零...
我有一个包含 4 个斑点的二进制图像。其中 3 个的纵横比大于 1。1 个的纵横比为 1。现在我想减少二值图像中纵横比大于 1 的斑点。我怎么能这样做。有人可以提供一个代码吗??
这里是一张link的二进制图像。我想减少纵横比大于 1 的 3 个斑点。并且只想保持三角形形状。
您可以为此使用 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
并查看 width/height 比率 ar
(或您定义的纵横比)是否大约大于 1(由于噪音,我会取 ar>1.2 的值)。然后对于 i
使用你可以使用像素列表 s(i).PixelIdxList
bw(s(ar>1.2).PixelIdxList)=0;
将这些强度归零...