我需要以尽可能高的精度检测灰度图像上的角点。目前我正在使用 OpenCV 函数:cvFindCornerSubPix()。
我准备了一个简单的测试:得到一个带有黑/白边角的图像:
然后是一系列相同的对象,每个移动 1/16 像素。我确实手动检查了像素值,测试图像很好。
检测结果令人失望:即使在 TermCrit 中条件设置为 100 次迭代或 0.005 阈值,检测误差也高达 0.08 像素。
该图显示了作为像素内位置函数的误差。看起来一点也不随意。另一件值得注意的事情:对于角落的其他环形位置(当边缘不是水平/垂直时)结果更好,但仍然不完美。
有什么想法,如何使此功能正常工作,为什么不能正常工作,或者改用什么?
我将不胜感激任何建议