H = K[R|t] 其中H(3*3)为单应矩阵,R为旋转矩阵,K为相机内参数矩阵,t为平移向量。
我使用棋盘模式计算了 K,如下所示
ret, K, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, chess_gray.shape[::-1],None,None)
单应矩阵H计算为
pts_src = np.float32(pts_src)
pts_dst = np.float32(pts_dst)
H, status = cv2.findHomography(pts_src, pts_dst)
如何使用 H 和 K 分解 R 和 t
cv2.decomposeHomograpyMat(H,K,....)
如何编写上述函数的其他输入和输出?
最佳答案
假设 H 为单应矩阵,K 为相机矩阵,Python 代码为:
num, Rs, Ts, Ns = cv2.decomposeHomographyMat(H, K)
num 个可能的解决方案将被返回。
Rs 包含旋转矩阵的列表。
ts包含一个翻译向量的列表。
Ns 包含平面法向量的列表。
更多信息请查看官方文档:
OpenCV 3.4 - decomposeHomographyMat()
关于python - 在opencv python中分解单应矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41526335/