如何提高角点检测精度

时间:2013-10-30 05:27:14

标签: opencv image-processing computer-vision

我使用棋盘角点检测算法进行研究。我使用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像素精度。有没有办法存档这种精度?角是否与噪声有关?相机捕捉图像时是否会出现噪音? 请帮我。

1 个答案:

答案 0 :(得分:0)

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

这里有改进空间,因此您最好使用管道中需要较低精度的后续阶段(使用强大的估算器等)。