opencv undistortion(摄像机校准)

时间:2014-06-23 06:46:59

标签: opencv distortion

我在使用opencv的undistort()api时遇到了问题。

目前,我正在尝试通过将结果与GML校准工具箱(//graphics.cs.msu.ru/en/node/909)进行比较来验证校准结果。

以下是使用 GML

获得的结果
=== Intrinsic ===
778.200465 0.000000 264.299668
0.000000 757.938633 383.228433
0.000000 0.000000 1.000000
=== Distortion ===
-0.102929 0.142385 0.001972 0.007185 
=== Position ===
0.0 0.0 0.0
=== Extrinsic ===
0.022835  0.913067  0.407170  -13.413557
0.642153  -0.325546  0.694016  -176.271870
0.766236  0.245618  -0.593763  251.019585
0.000000  0.000000  0.000000  1.000000

pixle error [0.12, 0.06]

以下是 OPENCV 2.4.8发布的结果


%YAML:1.0
nframes: 2
image_width: 480
image_height: 752
square_size: 15.
flags: 0
camera_matrix: !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [ 7.7831650886449142e+002, 0., 2.6427482436286419e+002, 0.,
       7.5794845379782328e+002, 3.8328330268344854e+002, 0., 0., 1. ]
distortion_coefficients: !!opencv-matrix
   rows: 5
   cols: 1
   dt: d
   data: [ -1.0303815300339793e-001, 1.4247900680485645e-001,
       1.9600293643082536e-003, 7.1852707322515265e-003, 0. ]
avg_reprojection_error: 1.3913581417364859e-001
per_view_reprojection_errors: !!opencv-matrix
   rows: 2
   cols: 1
   dt: f
   data: [ 1.34592891e-001, 1.47803366e-001 ]

GML和OPENCV的结果与我的眼睛相似,但不成比例的结果看起来完全不同。

附上2张图片

显示orignal和gml之间的差异未失真 - “2_gml_calib_undistorted.bmp” - 使用gml toolbox undistortion
enter image description here

显示orignal和opencv之间的差异未失真 - “3_opencv2.4.8_calib_undistorted.bmp” - 使用opencv
enter image description here

还尝试将GML校准数据提供给o​​pencv undistort()函数,结果与opencv类似。所以我得出结论,问题在于无法使用api。 但我还是无法解决这个问题。

请注意: 我使用以下opencv apis

  • findChessboardCorners(viewGray, boardData.boardSize, point2Dbuf,CV_CALIB_CB_ADAPTIVE_THRESH+CV_CALIB_CB_FILTER_QUADS);
  • calibrateCamera(objectPoints, imagePoints, imageSize, *cameraMatrix,*distCoeffs, rvecs, tvecs, flags|CV_CALIB_FIX_K3|CV_CALIB_FIX_K4|CV_CALIB_FIX_K5,TermCriteria(CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 100,DBL_EPSILON));
  • undistort(view, rview, *cameraMatrix, *distCoeffs);

解决此问题的任何指示都会有很大帮助。

谢谢,

0 个答案:

没有答案