2016-04-22 4 views
-1

私は、OpenCVを使ってPythonでカメラキャリブレーションを計算することができます。しかし、私が本当に必要とするのは投影行列です。ドキュメントの方程式を見ると、これはP = K[R|T]のように見えます。ここで、Kは内在行列、Rは回転行列、Tは並進ベクトルです。これは、投影行列を計算するために作成したコードです。OpenCV:calibrateCamera()の出力から投影行列を見つける方法は?

ret, matrix, distCoef, rvecs, tvecs = cv2.calibrateCamera([world_points], [corners], gray.shape[::-1], flags=cv2.CALIB_USE_INTRINSIC_GUESS) 

K = matrix 
R = cv2.Rodrigues(rvecs[0])[0] 
T = tvecs[0] 
RT = np.concatenate((R,T),axis=1) 
P = np.dot(K, RT) 

これは間違いありませんか?私が理解するために、私はP * [x; y; z; 1]ここで、(x、y、z)はワールドポイントであり、出力は対応するピクセル座標でなければならない。私はこれを試しましたが、出力は非常に間違って見えます。これは、それが悪いキャリブレーションであったことを意味しますか、またはPを間違って構築しましたか?

答えて

-1

私はそれを修正したと思います。結論として、私はいくつかの悪いパラメータをcalibrateCamera()に与えました。私は、OpenCVサンプルフォルダに付属しているcalibrate.pyに基づいてコードを書き直しました。私は元の投稿(Pの作成、再投影エラーのチェックなど)で述べた残りのコンセプトに従っています。

関連する問題