【问题标题】:How to Draw BoundingBox or Tag Objects Which Has Less Area Than Others如何绘制 BoundingBox 或标记面积小于其他对象的对象
【发布时间】:2014-04-09 23:42:55
【问题描述】:

在我的图像中,我有 5 个黑白形式的对象。有些分别较小,有些较大。 所以我想做的是绘制一个边界框或标记面积小于其他对象的对象(例如,低于 10 像素/面积)。

我无法做到这一点,有人可以帮忙吗?

【问题讨论】:

  • 你有没有花时间调查regionprops。我可以在一分钟内给您答复,但您必须向我们展示您的尝试。

标签: image matlab image-processing tags bounding-box


【解决方案1】:

这是两个不同的问题。第一种是只选择某个区域以上的对象。所以只需删除它下面的所有对象:

clean = bwareaopen (im, 10); # remove all objects with area below 10

那么对于第二个问题有很多可能性。你可以得到他们的边界:

borders = bwperim (clean);
imshow (borders);

你可以给它们贴上标签:

labeled = bwlabel (clean);
imshow (labeled);

或者你可以得到他们的边界框(取决于你的对象的形状可能会重叠):

props = regionprops (clean, 'BoundingBox');
all_bb = props.BoundingBox;
boxes = false (size (clean));
for i = 1:numel (all_bb)
    bb = all_bb{i};
    bb(round (bb(2):bb(2)+bb(4), bb(1):bb(1)+bb(3))) = true;
end
imshow (boxes);

注意:这是我脑子里写的,没有测试。可能有一些小疏忽,但没有什么大不了的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多