-1

我在研究中使用了棋盘角检测算法。我使用了 goodFeaturesToTrack 来找到角点,并使用 cvFindCornerSubPix 来细化亚像素级别的角点。在我的第一个线索中,在相机前固定了一个棋盘并拍摄了近 5 张图像。在找到亚像素级别后,我找到了像这样的第一张图像的角点。

(x,y) = (1259.422974,784.823181) (x,y) = (1258.550537,828.983459) (x,y) = (1257.704956,873.095154) (x,y) = (1256.886188,917.151306)

对于第二张图片,我的角落是这样的

(x,y) = (1259.426147,784.866272) (x,y) = (1258.548584,829.007916) (x,y) = (1257.697754,873.099915) (x,y) = (1256.873779,917.136719)

我使用了如下所示的 deadreg

cornerCriter.epsilon = 0.0005;
cornerCriter.max_iter = 30;
cornerCriter.type = 3;
winSize.height = 30;
winSize.width = 30;
deadReg.height = -1;
deadReg.width = -1; 

我使用了 10MP 相机,我的棋盘正方形大小是 40 毫米。我的问题是我得到的角的精度是 0.1 像素。但我需要 0.001 像素的精度。有什么方法可以存档这种准确性吗?角落是否依赖于噪音?相机拍摄图像时是否会出现任何噪音?
请帮我。

4

1 回答 1

0

0.001 = 1/1000 像素的精度似乎根本不现实。0.1其实已经很合理了。

您在这里几乎没有改进的余地,因此您最好在管道中使用一些需要较低准确性的后期阶段(使用稳健的估计器等)。

于 2013-10-30T07:14:49.297 回答