如何获取图像的边界框和底部边界框

问题描述 投票:1回答:1

对于图像,我计算了所有边界框。我想删除位于图像底部的边界框,因为它们不是我的投资回报率。

有人可以帮助使用计算的边界框从图像中删除底部。

image matlab image-processing
1个回答
0
投票

让我们说你有一个单色图像(黑色和白色)称为Image3。正如您已经说过的那样,您正在计算围绕“扭曲”的边界框。

[labeledImage, numberOfBlobs] = bwlabel(Image3);
measurements = regionprops(labeledImage, 'BoundingBox'); 

通过计算边界框regionprops,你显然是在计算你的扭曲的位置,但这是从我的观点来看冗余可能是多余的。你可以简单地写:

[labeledImage, numberOfBlobs] = bwlabel(Image3);
[x,y]=size(labeledImage);

height_from_top = 0.8;
width_from_left = 1.0;
endIdx_y = round(y*height_from_top);
endIdx_x = round(x*width_from_left);
labeledImage(1:endIdx_x ,1:endIdx_y)=0;

Image3(labeledImage>0)=0; % or 1, depending on the colour...

我的指数很可能不完全匹配。不幸的是,我现在无法检查它,但是此修改应排除您的下边框和最右边框,具体取决于您要在每个方向上过滤的图像的百分比。例如。将height_from_top设置为0.5应该只删除图像的下半部分。

© www.soinside.com 2019 - 2024. All rights reserved.