如何在图像中的对象周围获得矩形?

时间:2014-08-21 14:10:26

标签: c# image rectangles

以编程方式获取图像中对象周围的矩形的最简单方法是什么?在c#中寻找解决方案

enter image description here

我不完全确定如何进行搜索。任何提示都非常受欢迎。

*编辑: 正如鲍比猜测的那样,我正试图在斑点周围找到周围的矩形。斑点的大小,形状和位置各不相同。例如,它们可以是星形和圆形。正如TaW所说,我需要弄清楚哪些像素相互连接。你会怎么处理漏洞?

祝福

2 个答案:

答案 0 :(得分:3)

一种简单的方法可能是

  1. 扫描图像以查找红色像素
  2. 执行FloodFill跟踪最小/最大x和y以成功替换颜色...当填充完成时,您有一个边界框。另外,你已经消除了该blob的所有红色像素
  3. 转到1并继续扫描

答案 1 :(得分:1)

这是 Find Waldo 的简化问题,假设您可以在C#.net中调用Wolfram语言。我在这台电脑上没有Wolfram,但应该是这样的:

img = Import["http://i.stack.imgur.com/qlVlM.png"];
objectshape = SelectComponents[DeleteBorderComponents[Binarize[img, {0, .7}]], "Area"}, 10 < #1 < 1000 && #2 > 0 &];
shapes = ComponentMeasurements[ImageMultiply[img, objectshape], {"BoundingBoxArea"}][[All, 2]];
Show[img, Graphics[{Red, Thick, Rectangle @@ # & /@ shapes}]]

非常相似的结果,我的答案基于:segmentation analysis