我想从相机中添加一个捕获的帧网格模型(比如说一个立方体)
我也知道有关放置多维数据集的位置的所有信息:
如何将此信息转换为模型/视图/投影矩阵?
要设置为这些矩阵的值应该是什么?
例如,假设我想在屏幕上显示点[x,y,z,1], 那应该是这样的:[u,v,1] = K * [R | T] * [x,y,z,1],while:
u,v是屏幕(或摄像头捕捉)中的坐标,并且:
K,R和T分别是固有的相机参数,旋转和平移。
如何将K,R,T转换为模型/视图/投影矩阵?
答案 0 :(得分:2)
[R | T]将是您的模型视图矩阵,K将是您的投影矩阵。
模型 - 视图矩阵通常是一个矩阵。分离只是概念性的:模型从模型坐标转换为世界坐标,从世界坐标转换到相机(尚未投影)坐标。在相机和物体彼此独立移动的应用中,它是有意义的。另一方面,在您的情况下,可以认为相机是固定的,并且相对于相机描述了其他所有内容。因此,您只需要处理两个矩阵:模型视图和投影。
答案 1 :(得分:2)
假设您的相机内部矩阵来自OpenCV(http://docs.opencv.org/2.4/doc/tutorials/calib3d/camera_calibration/camera_calibration.html),那么如何初始化您的OpenGL投影矩阵: https://blog.noctua-software.com/opencv-opengl-projection-matrix.html
至于你的OpenGL模型 - 视图矩阵,它非常简单: