Я могу рассчитать калибровку камеры с помощью OpenCV в Python. Однако мне действительно нужна проекционная матрица. Рассматривая уравнения из документов, это выглядит так: P = K[R|T]
где K - внутренняя матрица, R - матрица вращения, а T - вектор сдвига. Это код, который я сделал для вычисления матрицы проецирования:OpenCV: Как найти матрицу проекции из calibrateCamera() output?
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; у; г; 1], где (x, y, z) - точка мира, а выход должен быть соответствующей координатой пикселя. Я пробовал это, но результаты выглядят очень неправильно. Означает ли это, что это была плохая калибровка, или я неправильно построил P?