在单色位图中查找对象的边界矩形

时间:2009-07-22 01:52:34

标签: image-processing bitmap bounding-box

给出单色位​​图:

000000000000000000000000000000000000000
001000100000000000000000000000000000000
000101000000000000000000000000000000000
000010000000001000000000000000000000000
000101000000010100000000000000000000000
001000100000100010000000000000000000000
000000000000010100000000000000000000000
000000000000001000000000000000000000000
000000000000000000000000000000000000000
000000000000001111110000000000000000000
000000000000001000010000000000000000000
000000000000001000010000000000000000000
000000000000001111110000000000000000000
000000000000000000000000000000000000000
000000000000000000000000000000000000000
000000000000000000000000000000000000000

我希望能够在位图上找到每个对象的边界矩形。

我可以使用任何已建立的算法吗?

3 个答案:

答案 0 :(得分:3)

您正在寻找的是“Blob”检测,它可以检测从周围区域突出的物体组。根据您所需的复杂程度,您还可以跟踪面积,凸度,周长,边界框等。斑点用于许多机器视觉和检测应用。

Wiki上有很多已建立的算法等。

您还可以查看图像处理库,想到的是AForge - 它是一个用C#编写的开源库:aforge.net

或者只是搜索“Blob detection”,你会发现很多关于你需要的信息。

祝你好运!

答案 1 :(得分:0)

如果您可以访问MATLAB,可以查看regionprops函数源。它做了很多事情,包括寻找边界框。

基本上你需要根据它们所属的连接组件标记所有像素,然后你可以为每个像素取最小和最大X和Y坐标。

答案 2 :(得分:0)

我要做的是查看任何标记算法。易于实现的是“运行轨道”算法。 然后,当您完成标记后,您可以找到每个标记对象的(顶部,左侧,右侧,底部)极端像素。 它可能不是最快的方式(因为你将多次扫描图像),但它很容易实现。

以下是演讲幻灯片(简称)描述了RT算法(以及另外一个):http://www.cvl.isy.liu.se/Education/UnderGraduate/TSBB08/DBgrk7.pdf