python逆透视变换试验——利用cv2.getPerspectiveTransform和cv2.warpPerspective函数实现

本文介绍了如何使用Python的OpenCV库进行逆透视变换,以将透视图像转换为鸟瞰图,适用于自动驾驶中的车道线处理和单目视觉测距。通过cv2.getPerspectiveTransform和cv2.warpPerspective函数,结合相机标定的四个角点坐标,可以创建精确的逆透视变换效果。
摘要由CSDN通过智能技术生成

试验说明

本试验是想模拟自动驾驶识别车道线拟合函数时,可能会用到的一种图像处理手段,即将相机拍摄到的透视图像转换成为逆透视图像(鸟瞰图),便于对车道线的后续处理,同时对基于单目视觉进行测距也有一定的帮助;
在这里插入图片描述

生成透视变换矩阵;进行透视变换

cv2.getPerspectiveTransform(src, dst) → retval

获取逆透视变换矩阵函数各参数含义 ;
src:源图像中待测矩形的四点坐标;
sdt:目标图像中矩形的四点坐标

逆透视变换函数各参数含义

cv2.warpPerspective(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) → dst

src:输入图像;
M:变换矩阵;
dsize:目标图像shape;
flags:插值方式,interpolation方法INTER_LINEAR或INTER_NEAREST;
borderMode:边界补偿方式,BORDER_CONSTANT or BORDER_REPLICATE;
borderValue:边界补偿大小,常值,默认为0

如果只是简单地将图像进行变换可以直接选取原图中呈现透视效果的4个点坐标,然后再按照自己的目的将这4个点构成的梯形转换成矩形形式,不过,这样的操作由于选取点坐标具有随机性,带来的误差较大。
例如,我们直接选取棋盘格的四个角点作为透视效果中的4个点,左上:(414,471),右上:(920,471),右下:(1015,756),左下:(330,756);计算出梯形上下边的像素长度为:506 和 685,高为 285;
因此我们可以设计一个矩形作为逆透视变换后的图像大小尺寸,即 cv2.warpPerspective中的dsize,取685*285,效果如下:
在这里插入图片描述
在这里插入图片描述

进一步,为了尽可能的包含整个图像,我们可以通过相机标定的方式,提前计算出整个图像

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sjh_sjh_sjh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值