python三维图俯视图,python opencv 前视图转化为鸟瞰图
想要把前视图转化为鸟瞰图,有两种做法
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 前视图转化为鸟瞰图相关推荐
- python三维图俯视图_二叉排序树 查找 python实现二叉树的俯视图
二叉排序树 查找 介绍:树是数据结构中非常重要的一种,主要的用途是用来提高查找效率,对于要重复查找的情况效果更佳,如二叉排序树.FP-树.另外可以用来提高编码效率,如哈弗曼树. 代码:用python实 ...
- python 三维图直方图_Python | 阶梯直方图
python 三维图直方图 A histogram is a graphical technique or a type of data representation using bars of di ...
- python 三维图 背景_Python 绘制酷炫的三维图步骤详解
通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...
- python三维图的坐标_六维图见过么?Python 画出来了
作者 | Prasad Ostwal 译者 | 高级农民工 我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面. 来自维基百科 不过, ...
- python三维图的坐标_用Python 画个六维图,涨姿势了
关注后你就是我的人了 我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面. 来自维基百科 不过,我们仍然可以绘制出多维空间,今天就来用 ...
- python三维图如何标注曲面_(python)使用colormap作为第4维,x,y,z函数绘制3d曲面 - python...
我正在尝试绘制3d曲面,其中三个维度中的每个维度都在单独的值数组中,并且每个坐标处的曲面着色是x,y,z的函数.一种numpy.pcolormesh,但是是4D而不是3D的. 3D图由下式给出: fr ...
- python三维图视角旋转_如何在python中旋转3d图? (或作为动画)使用鼠标旋转三维视图...
我有这段代码,其中包含一个3D图.我在Spyder中运行代码;我想知道是否可以使这个绘图旋转(360度)并保存. 谢谢! P.s.对不起,如果这是一个愚蠢的问题,但我是Python的newby.如何在 ...
- python三维图旋转_SciPyTutorial-图像的矩阵旋转变换
21. Scipy Tutorial-图像旋转变换 scipy的misc模块里提供了很多的内建图像数据,例如lena.face.ascent等,可供在scipy里直接访问这些图像数据并使用scipy提 ...
- python三维图切片提取_详解Python二维数组与三维数组切片的方法
如果对象是二维数组,则切片应当是x[:]的形式,里面有一个冒号,冒号之前和之后分别表示对象的第0个维度和第1个维度: 如果对象是三维数组,则切片应当是x[::],里面有两个冒号,分割出三个间隔,三个间 ...
最新文章
- oracle sqlserver 查看指定用户下面的表
- d3.js 入门指南
- Android 多选列表
- jquery对文本赋值和取值_jQuery对表单元素的取值和赋值操作代码
- Pixel6 解锁bootloader
- HTML5 dataset遍历,H5中data-xxxx属性
- LINUX/CentOS防CC***脚本
- git 日常 常用命令
- bat实现监测计算机网络连接,断网自动重启网络连接
- 163editor 网页编辑器 获值
- Windows 无法访问指定设备、路径或文件
- 领导力学习笔记(1118 周一)
- 《精进:如何成为一个很厉害的人》读后感
- B2B2C多租户商城系统解决方案:打通线上线下服务体验,提升企业品牌渗透力
- 关于“IT学子成长指导”专栏及文章目录
- css 谷歌字体加载,使用谷歌网页字体无限制的添加字体到您的网站
- 互联网程序员行话(黑话)合集
- insightface人脸训练数据rec文件制作
- IPGUARD卸载客户端方法
- 2022-2028年中国二氧化碳行业市场全景评估及投资前景规划报告