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

时间:2018-12-10 06:49:14

标签: image matlab image-processing

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

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

1 个答案:

答案 0 :(得分: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只会删除图像的下半部分。