首页 > 解决方案 > OpenCV,在 3d 表面上的投影

问题描述

我目前正在使用“自动”汽车进行学校项目,我需要将相机(位于汽车上并略微倾斜)中的图像投影到代表道路的 2d 表面上(我假设道路是完全平坦),考虑到我的相机相对于表面的 FOV、位置和角度,我将如何在 OpenCV 中投影它? 我特别需要的是让投影就像我从上方以 90° 角拍摄道路一样。提前感谢您的帮助...

标签: python-2.7opencvraspberry-pi3projectionautonomy

解决方案


使用opencv函数来做

C++: void reprojectImageTo3D(InputArray disparity, OutputArray _3dImage, InputArray Q, bool handleMissingValues=false, int ddepth=-1 )

Q 矩阵是投影矩阵 K 的逆矩阵,K 包含相机中心和 fx fy

在此处输入图像描述

您可以人为地创建视差,例如使用渐变图来表示平面的深度。

然后传你想要的Q、disparty、output3Dmat

该程序将为您提供您想要的


推荐阅读