【问题标题】:how to get bounding box, and bottom bounding box for an image如何获取图像的边界框和底部边界框
【发布时间】:2019-05-11 01:29:11
【问题描述】:

对于一张图片,我计算了所有的边界框。我想删除图像底部的边界框,因为它们不是我的 ROI。

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

【问题讨论】:

  • 请提供有关您的边界框的更多信息。例如。这些框是由两对矩阵条目定义的吗?如果你删除它们,你想用什么值覆盖它们?
  • 嗨 Pablo,我使用以下代码获取边界框。 Image3 是黑色和图像。从底部找到边界框后,我需要用黑色填充这些区域。 [labeledImage, numberOfBlobs] = bwlabel(Image3);测量 = regionprops(labeledImage, 'BoundingBox');
  • 好的,你想用什么来代替它们?
  • 像素为黑色。
  • 如何定义底部边界框?你想删除的和你想保留的有什么区别?如果位置始终相同,您可以随时填写例如第 200 行 - 最大(行),黑色。 labeledImage(200:end,:) = 0

标签: image matlab image-processing


【解决方案1】:

假设您有一张名为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 应该只删除图像的下半部分。

【讨论】:

  • 巴勃罗,Image3(labeledImage>0)=0;给我一个全黑的图像,我需要找到最底部的边界框并用黑色像素重新填充所有底部区域,保留图像中的所有其他文本区域。
猜你喜欢
  • 2020-12-31
  • 1970-01-01
  • 2014-11-05
  • 1970-01-01
  • 2021-04-15
  • 1970-01-01
  • 1970-01-01
  • 2021-03-31
  • 1970-01-01
相关资源
最近更新 更多