逆透视变换IPM:将摄像机拍摄的图片转换为鸟瞰图

该博客介绍了如何使用OpenCV进行逆透视变换,将摄像机拍摄的图像转换为鸟瞰图,用于社交安全距离监测。通过选取四个角点,计算透视变换矩阵,并应用此矩阵对图像进行变换。文中提供了具体步骤和代码示例,以Deepsocial项目为例,展示了转换前后效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于Deepsocial做社交安全距离监测时,先使用目标检测器检测出画面中的行人,然后建立从摄像机—透视图到逆透视—鸟瞰图的坐标映射,将摄像机拍摄画面中的行人坐标转换为鸟瞰图上的坐标,从而计算行人之间的距离。
先看一下原图:
ori

想要把透视图转化为鸟瞰图,有两种做法:
1.在没有标定的情况下,只能选取四个点对
2.在有标定的情况下,可以直接使用标定的参数**
先不讲理论细节,先看第一个方法,直接看opencv的操作(使用图片Deepsocial使用的视频图片,以及Deepsocial中的标定坐标),首先需要以下条件:
1、在摄像机拍摄的图像上,比如在960*540的图像上选取四个角点,例如:

# 左上角、右上角、左下角、右下角
source = np.float32([[0, 0],[960, 0], [0, 540], [960,540]]

如图所示:
在这里插入图片描述

2、测量出四个点的实际坐标,例如:

target = np.float32([[180,162],[618,0],[552,540],[682,464]])

测量方式如下:
(待考究!!!)

先看一下转换后的鸟瞰图:
wrap
具体过程如下:
1、上述角点设置完毕后,通过pts1、pts2求出透视变换矩阵:
cv2.getPerspectiveTransform(source,

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值