我的申请是检测硬币。我使用OpenCv完成了大部分工作。我使用CannyDetection和houghTransform来检测图像圈。
但我没有得到正确的硬币圈,我认为这可能是ThresoldValues传递给cannyEdgeDetector的问题。任何人都可以告诉我如何选择用于检测硬币圆圈的thresold值。
答案 0 :(得分:0)
不幸的是,没有神奇的数字。圆圈检测很大程度上取决于您传递给cvHoughCircles()
的参数,并且它们对硬币的大小敏感,硬币的大小会根据相机的接近程度而变化。
请查看此答案,例如:Simple object detection using OpenCV and machine learning
这个例子可以为特定大小的硬币创造奇迹。但是如果它被相机捕获并且我们移动了它,硬币的大小将会改变,应用程序将无法再提供这样的准确结果。
我所说的是你需要在相机和硬币之间以固定距离工作才能使用这种方法。找到适合您的合适距离,然后调整函数的参数,直到您满意为止。