想象一个普通的矩形位图,比方说,1024x768 像素填充白色。位图上绘制了一些(非重叠的) Sprite :圆形、正方形和三角形。
是否有一种算法(甚至可能是 C++ 实现)在给定位图和背景颜色(白色,在上例中)的情况下,生成一个列表,其中包含每个 Sprite 的最小边界矩形?
这是一些示例:在左侧,您可以看到我的代码给出的示例位图(以及“背景”为白色的信息)。在右侧,您可以看到相同的图像以及四个形状的边界矩形(红色);我正在寻找的算法计算这些矩形的几何形状。
一些绘画程序具有选择形状的类似功能:它们甚至可以计算看似任意的边界多边形。无需手动拖动选择矩形,您可以单击“背景”(什么是背景,什么不是由某个阈值决定),然后该工具会自动计算绘制到背景上的对象的形状。我需要这样的东西,但如果我只有对象的矩形边界区域就完全没问题了。
我开始意识到 OpenCV ;它似乎是相关的(它似乎是一个包含我能想到的所有图形算法的库 - 然后是一些)但是在快速的信息量中我找不到我正在考虑的算法的方法。如果 OpenCV 不能做到这一点,我会感到惊讶,但我担心您必须拥有博士学位才能使用它。 :-)
最佳答案
关于c++ - 是否有计算在单色背景上绘制的 Sprite 边界矩形的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8512680/