从 OpenGL 到 OpenCV 的转换
Conversion from OpenGL to OpenCV
我有什么
我正在统一使用标准透视相机生成图像。相机瞄准地平面(统一为 xz 平面),参见图像。由此我需要移除视角,以便所有裁剪行彼此平行。
方法
openCV 中的 warpPerspective() 函数可用于去除图像的透视。所有信息都是已知的,例如视野、旋转、位置……因此我知道 3D 点如何映射到 2D 平面上,反之亦然。问题是 OpenCV 使用了其他系统。在 openCV 中应该是 3X3 矩阵,单位的变换矩阵是 4X4 矩阵。两者之间有转换吗?或者我应该考虑其他策略?
编辑
unity中无法使用正交相机
固定
通过构建从相机原点穿过每个像素的光线并寻找与地平面的交点解决了这个问题。在此之后,我将地平面离散化为具有与原始图像相同分辨率的网格。累积映射到同一单元格的点
我有什么
我正在统一使用标准透视相机生成图像。相机瞄准地平面(统一为 xz 平面),参见图像。由此我需要移除视角,以便所有裁剪行彼此平行。
方法
openCV 中的 warpPerspective() 函数可用于去除图像的透视。所有信息都是已知的,例如视野、旋转、位置……因此我知道 3D 点如何映射到 2D 平面上,反之亦然。问题是 OpenCV 使用了其他系统。在 openCV 中应该是 3X3 矩阵,单位的变换矩阵是 4X4 矩阵。两者之间有转换吗?或者我应该考虑其他策略?
编辑
unity中无法使用正交相机
固定
通过构建从相机原点穿过每个像素的光线并寻找与地平面的交点解决了这个问题。在此之后,我将地平面离散化为具有与原始图像相同分辨率的网格。累积映射到同一单元格的点