opencv - 逆透视映射 -> 何时不失真?

标签 opencv camera projection perspective distortion

背景:

我在面向前方的汽车上安装了一个摄像头,我想找到路标。因此,我试图将图像转换为鸟瞰图像,从放置在相机前面 15m 和地面以上 20m 的虚拟相机观看。我实现了一个使用 OpenCV 的 warpPerspective 函数的原型(prototype)。透视变换矩阵是通过在道路上定义一个感兴趣区域并通过计算 ROI 的 4 个角在前置和鸟瞰摄像机中的投影位置得到的。然后我使用这两组 4 个点并使用 getPerspectiveTransform 函数来计算矩阵。这成功地将图像转换为顶 View 。

问题:

什么时候应该不失真前置摄像头图像?我应该先不失真然后再做这个变换,还是应该先变换然后不失真。

如果您建议第一种情况,那么我应该使用什么相机矩阵将点投影到鸟瞰相机上。目前,我对两个投影都使用相同的原始相机矩阵。

如果我的描述令人困惑,请询问更多细节!

最佳答案

用于创建逆透视映射 (IPM) View 的类。在高级驾驶辅助系统领域也称为鸟瞰图,或者在射影几何中称为简单的平面到平面单应性。

IPM 代码:http://sourceforge.net/projects/ipmapping/files/?source=navbar

引用:https://marcosnietoblog.wordpress.com/code/

关于opencv - 逆透视映射 -> 何时不失真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17241323/

相关文章:

c# - Nhibernate 项目转化为类属性

orchardcms - 如何呈现已知内容项目的投影的自定义布局

java - Hibernate Query By Example 和 Projections

c++ - 在 OpenCV 中使用 drawContours 连接四个点

python - 具有像素值列表的图像掩码

opencv - Kinect - 物体识别和计算物体的3D坐标

android - 在横向模式下使用相机获取纵向预览

c++ - 如何正确移动相机的朝向

python - dct 中的断言失败(类型 == CV_32FC1 || 类型 == CV_64FC1)

iOS - 是否可以在将图像文件从应用程序保存到 iPhone 设备库之前重命名图像文件名?