Hug*_*une 5 algorithm opencv image-processing image-recognition object-recognition
我有一个二进制斑点(见图),我想在其上放置一个已知宽度和高度的矩形。
如何找到最佳拟合矩形,即最大前景像素在内部且最大背景像素在外部的矩形?
(这是我对最适合的初步定义,我愿意接受其他建议)
我正在寻找已知尺寸的矩形,但如果有任意尺寸的解决方案,那就太好了。
斑点示例:

我想找到这些矩形:

到目前为止我的想法包括
我意识到对于符合我的标准的同一个斑点可能有多个矩形,理想情况下我想要一些可以找到所有候选者的算法(认为因为这可能更难,我很高兴有一种方法只找到一个候选者) :

我主要使用 opencv 和 cvBlobLib 来处理我的数据,但我对任何通用解决方案持开放态度。
我看过一篇基于进化方法的类似主题的论文(RGB 平面上的圆覆盖)。
我记得,对 SGA、CGA 和 eCGA 进行了比较(CGA 从初始的、基于 k 均值的覆盖开始),SGA 优于其他算法。它们是按每个图像运行的。大约有 30 个个体和 20 个世代,运行时间大约为几分钟。
对于 SGA,交叉运算符将一次选取两个父代,并将来自两个父代的最接近/最相似的圆配对。然后,对于每一对,它会在中间的某个位置绘制一个子圆,其半径也在两个圆的半径之间。(尽管我建议不要精确地取父母的值之间的值,但允许在范围之外有+/- 15%的值。这将防止总体过早收敛)。
对于矩形,您必须稍微修改方法;每个矩形可以是一个元组(x, y, width, height,rotation),其中x和y是中心的坐标。