私は、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を間違って構築しましたか?