是否有算法计算在单色背景上绘制的精灵的边界?

Fre*_*abe 9 c++ algorithm geometry

想象一个简单的矩形位图,例如,1024x768像素填充白色.在位图上绘制了一些(非重叠的)精灵:圆形,正方形和三角形.

有一个算法(可能甚至是C++实现),给定位图和颜色是背景颜色(白色,在上面的例子中),产生一个包含每个精灵的最小边界矩形的列表?

下面是一些示例:在左侧,您可以看到我的代码给出的示例位图(以及"背景"为白色的信息).在右侧,您可以看到相同的图像以及四个形状的边界矩形(红色); 我正在寻找的算法计算这些矩形的几何形状.

输入图片http://s1.directupload.net/images/111215/ruycwlgl.png 输出图片http://s1.directupload.net/images/111215/encr84ps.png

一些绘画程序具有用于选择形状的类似特征:它们甚至可以计算看似任意的边界多边形.您可以单击"背景"(背景和不是由某个阈值确定的内容),而不是手动拖动选择矩形,然后工具会自动计算绘制到背景上的对象的形状.我需要这样的东西,除非我只是有对象的矩形边界区域我完全没问题.

我开始意识到OpenCV ; 它似乎是相关的(它似乎是一个包含我能想到的所有图形算法的库 - 然后是一些)但是在快速的信息量中我无法找到通向我想到的算法的方法.如果OpenCV无法做到这一点,我会感到惊讶,但我担心你必须拥有一名博士才能使用它.:-)

Dan*_*dor 2

这是关于这个主题的精彩文章:

http://softsurfer.com/Archive/algorithm_0107/algorithm_0107.htm

我认为这里不需要博士学位:)