我有一个由二进制掩码定义的任意形状(灰色=形状,黑色=背景)。
我想找到一个仅包含灰色像素的最大可能矩形(此类矩形以黄色显示):
形状始终是“一件”,但不一定是凸形(并非形状边界上的所有点对都可以通过穿过形状的直线连接)。
有时存在许多这样的“最大矩形”,然后可以引入进一步的约束,例如:
- 取矩形的中心距形状的质心(或图像中心)最近的矩形
- 拍摄长宽比最接近预定义比例(即4:3)的矩形
我对算法的第一个想法是:
- 计算形状的距离变换并找到其质心
- 在仅包含形状像素的情况下增加正方形区域
- 在仅包含形状像素的情况下,使矩形(原为正方形)的宽度或高度增大。
但是,我认为这样的算法会很慢并且不会导致最佳解决方案。
有什么建议么?
2
这有帮助吗?mathworks.com/matlabcentral/fileexchange/…–
—
Atul Ingle
@AtulIngle就是这样!谢谢。您可以添加答案,以便我接受吗?然后,我将尝试编辑答案以详细说明算法-但我不想仅使用您提供的链接回答自己的问题...
—
Libor 2013年
大!由于我还没有阅读代码,因此我希望阅读您详尽的答案。
—
Atul Ingle 2013年
@AtulIngle好吧,我在答案中添加了一些讨论,并链接到我的完整文章。
—
Libor 2013年