我使用棋盘角点检测算法进行研究。我使用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相机,我的棋盘方形尺寸各为40mm。我的问题是我得到的角度精度是0.1像素。但我需要0.001像素精度。有没有办法存档这种精度?角是否与噪声有关?相机捕捉图像时是否会出现噪音? 请帮我。
答案 0 :(得分:0)
0.001 = 1/1000像素的精度似乎根本不现实。 0.1实际上已经很合理了。
这里有改进空间,因此您最好使用管道中需要较低精度的后续阶段(使用强大的估算器等)。