我想使用OpenCV检测方块。这是我正在尝试处理的图像:
有11个彩色方块,https://code.ros.org/trac/opencv/browser/trunk/opencv/samples/c/squares.c?rev=1429中OpenCV中的示例将无法检测到所有方块。我该怎么做才能发现所有这些?
答案 0 :(得分:2)
根据案例优化代码。学习并使用它。
另一种检测方块的方法是使用基于签名的广义霍夫投票框架。创建一个方形签名,然后用图像卷积它。在“霍夫空间”中累积结果并找到最大值(例如均值平移)。 要实现尺度不变性,请构建多尺度签名。
或者您可以尝试模板匹配。使用密集采样或关键点检测器(例如,哈里斯边缘),并使用一些描述符(例如,SURF,ORB)来构建空间码本。然后,您可以使用滑动窗口通过阈值化码本距离进行匹配。