想要把前视图转化为鸟瞰图,有两种做法

1.在没有标定的情况下,只能选取四个点对了

在有标定的情况下,可以直接使用标定的参数

这里主要介绍1

1.没有标定的情况下,主要用到了两个函数

M = cv2.getPerspectiveTransform(src, dst)

warped = cv2.warpPerspective(img, M, (img.shape[1], img.shape[0] + 1080))

cv2.getPerspectiveTransform 从四个点对中计算透视变换,返回值为3*3的透视变换矩阵

cv2.warpPerspective 计算透视变换后的图像

这里自己遇到的坑是,在计算透视变换矩阵的时候,怎么获取那四个点对,翻了很多blog,都没搞清,最后认认真真的找了一个认认真真的阅读之后,总算摸到门道了,有了一种融会贯通的感觉。

现在的目标是将图像由前视图转化为鸟瞰图,根据先验知识,在鸟瞰图下,长方形物体显示出来肯定是长方形,因此,我们只要在前视图中找到一个正方形的物体,并指定他在俯视图中的坐标就可以了,这里有个但是,由于先验信息里面只有矩形这个信息,具体的长宽比什么的,以及实际的大小未知,所以转化到鸟瞰图下并不能反应物体的真实长度。

这里怎么定义转化后的坐标要自己把握

原图

比如说转化到黄色的坐标(内接矩形),这时候就会内缩,图像出现黑边

转化到黄色坐标

如果转化到蓝色的,那么能看到的方位就很小了,只有当前车道了(外接矩形)

转化到蓝色坐标

dst的坐标也可以自己写,想要转成多大的图像也可以自己填

比如说根据车道的宽度和虚线的长度,可以大概估算出实际长宽比,一个车道宽度为3.75米 这种城市道路一般虚线是两米,间隔4米(高速一般是69,也就是15米)大概估计一下,高度是12米,也就是说长宽比为12:7,想要显示出4个车道,图像的宽度为1920,折算了一下,目标图像的坐标大概是(这里要注意,图像的坐标是从左上角开始算的)

自定义

坐标定义代码:

src = np.float32([(1242,1949),(1961,1949), (2695, 2542), (133, 2542)])

#内接矩形

dst = np.float32([(1242, 1949), (1961, 1949), (1961, 2542), (1242, 2542)])

#外接矩形

dst = np.float32([(132, 1949), (2695, 1949), (2695, 2542), (133, 2542)])

#自定义

dst = np.float32([(480,1560-1080), (1440,1560-1080), (1440,3096-1080), (480,3096-1080)])

2.使用标定参数来转化

这个转化就是真实的了,因为知道相机的内参,还有相机的pitch角以及相机距离地面的高度

matlab里面转的,要标定的参数

可以参考的透视变换

python三维图俯视图,python opencv 前视图转化为鸟瞰图相关推荐

  1. python三维图俯视图_二叉排序树 查找 python实现二叉树的俯视图

    二叉排序树 查找 介绍:树是数据结构中非常重要的一种,主要的用途是用来提高查找效率,对于要重复查找的情况效果更佳,如二叉排序树.FP-树.另外可以用来提高编码效率,如哈弗曼树. 代码:用python实 ...

  2. python 三维图直方图_Python | 阶梯直方图

    python 三维图直方图 A histogram is a graphical technique or a type of data representation using bars of di ...

  3. python 三维图 背景_Python 绘制酷炫的三维图步骤详解

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...

  4. python三维图的坐标_六维图见过么?Python 画出来了

    作者 | Prasad Ostwal 译者 | 高级农民工 我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面. 来自维基百科 不过, ...

  5. python三维图的坐标_用Python 画个六维图,涨姿势了

    关注后你就是我的人了 我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面. 来自维基百科 不过,我们仍然可以绘制出多维空间,今天就来用 ...

  6. python三维图如何标注曲面_(python)使用colormap作为第4维,x,y,z函数绘制3d曲面 - python...

    我正在尝试绘制3d曲面,其中三个维度中的每个维度都在单独的值数组中,并且每个坐标处的曲面着色是x,y,z的函数.一种numpy.pcolormesh,但是是4D而不是3D的. 3D图由下式给出: fr ...

  7. python三维图视角旋转_如何在python中旋转3d图? (或作为动画)使用鼠标旋转三维视图...

    我有这段代码,其中包含一个3D图.我在Spyder中运行代码;我想知道是否可以使这个绘图旋转(360度)并保存. 谢谢! P.s.对不起,如果这是一个愚蠢的问题,但我是Python的newby.如何在 ...

  8. python三维图旋转_SciPyTutorial-图像的矩阵旋转变换

    21. Scipy Tutorial-图像旋转变换 scipy的misc模块里提供了很多的内建图像数据,例如lena.face.ascent等,可供在scipy里直接访问这些图像数据并使用scipy提 ...

  9. python三维图切片提取_详解Python二维数组与三维数组切片的方法

    如果对象是二维数组,则切片应当是x[:]的形式,里面有一个冒号,冒号之前和之后分别表示对象的第0个维度和第1个维度: 如果对象是三维数组,则切片应当是x[::],里面有两个冒号,分割出三个间隔,三个间 ...

最新文章

  1. oracle sqlserver 查看指定用户下面的表
  2. d3.js 入门指南
  3. Android 多选列表
  4. jquery对文本赋值和取值_jQuery对表单元素的取值和赋值操作代码
  5. Pixel6 解锁bootloader
  6. HTML5 dataset遍历,H5中data-xxxx属性
  7. LINUX/CentOS防CC***脚本
  8. git 日常 常用命令
  9. bat实现监测计算机网络连接,断网自动重启网络连接
  10. 163editor 网页编辑器 获值
  11. Windows 无法访问指定设备、路径或文件
  12. 领导力学习笔记(1118 周一)
  13. 《精进:如何成为一个很厉害的人》读后感
  14. B2B2C多租户商城系统解决方案:打通线上线下服务体验,提升企业品牌渗透力
  15. 关于“IT学子成长指导”专栏及文章目录
  16. css 谷歌字体加载,使用谷歌网页字体无限制的添加字体到您的网站
  17. 互联网程序员行话(黑话)合集
  18. insightface人脸训练数据rec文件制作
  19. IPGUARD卸载客户端方法
  20. 2022-2028年中国二氧化碳行业市场全景评估及投资前景规划报告

热门文章

  1. echart自定义动画_echartGL动态水球效果
  2. 数据生成工具——datafaker
  3. 6亿小时,中国短视频APP日均使用时长!
  4. centos7安装ocaml
  5. 数据库设计案例 mysql学习
  6. corners设置多个属性
  7. x264编码详细文字全过程 --苏辉 2006年4月 南京
  8. 蓝牙连接每次弹出确认框问题的排查及解决
  9. CH438Q芯片详细解读
  10. 计算机控制技术课程动画课件资料等