我正在考虑检测图像中矩形的最佳方法。
我最初的想法是使用Hough transform作为行,并选择行的组合,其中两条线在下部和上部由相同的两条线相交,但这还不够。
使用corner detector和Hough变换一起工作吗?
答案 0 :(得分:5)
在OpenCV发行版中查看/samples/c/squares.c。这个例子提供了一个方形探测器,它应该是一个非常好的开始。
我的回答here也适用。
答案 1 :(得分:3)
我不认为目前存在一种简单而强大的方法来检测图像中的矩形。您必须处理许多问题,例如矩形不是完全矩形但只有近似,部分遮挡,光照变化等。
一个可能的方向是对图像进行分割,然后检查每个分段与矩形的接近程度。由于您无法信任您的分割算法,因此您可以使用不同的参数多次运行它。
另一个方向是尝试将矩形参数化地拟合到图像,以使沿着轮廓的图像梯度大小最大化。
如果您选择使用参数化方法,请注意,虽然参数化矩形的简单方法是通过它的四个角的位置(即8个参数),但还有一些其他表示需要较少的参数。
答案 2 :(得分:1)
Hough的扩展可能很有用。
http://en.wikipedia.org/wiki/Generalised_Hough_transform