0
我想在python中使用opencv運行相機校準。我正在使用:校準只有徑向失真的相機
cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1],None,None)
它似乎對5個失真係數很好。但是,我想嘗試運行它而沒有切向失真,可能只有2個徑向失真係數。那可能嗎?
我想在python中使用opencv運行相機校準。我正在使用:校準只有徑向失真的相機
cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1],None,None)
它似乎對5個失真係數很好。但是,我想嘗試運行它而沒有切向失真,可能只有2個徑向失真係數。那可能嗎?
我找到了答案。
對於沒有切向畸變:
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))
你只需要鏡頭校正(不失真)或你需要所有的相機內在? – Micka
我需要所有的相機內在因素+鏡頭校正。 –