我需要使用 OpenCV 找到图像中的正方形(在 matlab 或其他任何方法中都没有问题,通常我期望的是一些想法)。
考虑下面的测试图像:
我需要准确地找到上图中的那些彩色方块(不是白色的长条)。
我做了什么 :
我应用了常用方法(OpenCV 样本附带),即在所有颜色平面中找到轮廓,对其进行近似并检查元素数=4。它在某种程度上起作用,检测到的正方形很少,尤其是深色的。
我做的下一步是预测。即这种安排是固定的。因此,如果获得了一些,我可以预测剩余的。它还进一步发挥了作用。但是准确性非常差。
但我觉得预测在这里不是一个好方法,它并不总是提供第一步给出的准确答案。
我需要的 :
1)还有其他更好的方法可以更准确地检测这些正方形吗?还是多种方法?
重要的一点是,时间在这里不是问题。算法可能很慢,没关系。但准确性是主要标准。
有时,图像可能会更加模糊。
我面临的一个主要问题是某些方块的颜色与背景颜色几乎相似(检查第 3 列的第一个和第二个方块)。
寻找想法,提前谢谢
更新 :
以下是我得到的最准确的结果:
当然,结果图像会稍微调整大小。
更新 2:
我在下面的回答中给出了更好的解决方案:https ://dsp.stackexchange.com/a/7526/818