2016-11-23 8 views
0

私はpythonでopencvを使用してカメラのキャリブレーションを実行しようとしています。私は使用しています:ラジアルディストーションのみでカメラを調整する

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

これは5つのディストーション係数のためにうまくいっているようです。しかし、私は、タンジェンシャルな歪みがなく、場合によっては2つの放射状の歪み係数だけを使って試してみたいと思っています。それは可能ですか?

+0

レンズ補正(歪み)が必要なのですか、すべてのカメラ内蔵物が必要ですか? – Micka

+0

すべてのカメラ組み込み関数+レンズ補正が必要です。 –

答えて

0

答えが見つかりました。ドキュメントは、係数の数4の代わりに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)) 

:いいえ接線歪みを

。それはうまくいかないようです。代わりに、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)) 
関連する問題