2016-11-23 31 views
0

我想在python中使用opencv運行相機校準。我正在使用:校準只有徑向失真的相機

cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1],None,None) 

它似乎對5個失真係數很好。但是,我想嘗試運行它而沒有切向失真,可能只有2個徑向失真係數。那可能嗎?

+0

你只需要鏡頭校正(不失真)或你需要所有的相機內在? – Micka

+0

我需要所有的相機內在因素+鏡頭校正。 –

回答

0

我找到了答案。

對於沒有切向畸變:

ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1],None, 4,None,None,cv2.CALIB_ZERO_TANGENT_DIST, 
                criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 2e-16)) 

僅爲2徑向失真係數好像文檔建議使用4而不是5爲係數的數目。這似乎並不奏效。相反,我修復k3參數:

ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1],None, 4,None,None,cv2.CALIB_ZERO_TANGENT_DIST+cv2.CALIB_FIX_K3, 
                criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 2e-16))