自动驾驶AVM环视算法--python版本的540投影模式

ops/2024/12/20 18:52:40/

c语言版本和算法原理的可以查看本人的其他文档。《自动驾驶AVM环视算法--540度全景的算法实现和exe测试demo》本文档进用于展示部分代码的视线,获取方式网盘自行获取(非免费介意勿下载):链接: https://pan.baidu.com/s/19fxwrZ3BbsAW04VpXC7XRw 提取码: 7uxm  。

测试的环境:

以下是主运行函数的部分代码(仅供参考):

import cv2 
from run540 import * # 导入 MyClass 类  
from run540 import avmobjData  # 创建类的实例  
obj540 = avmobjData()  F_open=True
B_open=True
L_open=True
R_open=True
D_open=True
F_video=cv2.VideoCapture("video/Front.avi")
if F_video.isOpened():F_ocpn,F_frame=F_video.read()
else:F_open=False
B_video=cv2.VideoCapture("video/Back.avi")
if B_video.isOpened():B_ocpn,B_frame=B_video.read()
else:B_open=False
L_video=cv2.VideoCapture("video/Left.avi")
if L_video.isOpened():L_ocpn,L_frame=L_video.read()
else:L_open=False
R_video=cv2.VideoCapture("video/Right.avi")
if R_video.isOpened():R_ocpn,R_frame=R_video.read()
else:R_open=False
D_video=cv2.VideoCapture("video/Down.avi")
if D_video.isOpened():D_ocpn,D_frame=D_video.read()
else:D_open=False
CarImage = cv2.imread("top.png")  
print(F_open,B_open,L_open,R_open,D_open)
#初始化函数
new_width,new_height=obj540.init(0)  
print("new_width,new_height",new_width,new_height)
resize_CarImage = cv2.resize(CarImage, (new_width, new_height))
cv2.imshow("resize_CarImage",resize_CarImage)
# 创建一个三通道的彩色图像(RGB),初始值为 0(黑色)  
Dstimg = np.zeros((JS_AVM_IMGH, JS_AVM_IMGW, 3), dtype=np.uint8) 
while F_open and B_open and L_open and R_open and D_open:F_ret,F_frame=F_video.read()B_ret,B_frame=B_video.read()L_ret,L_frame=L_video.read()R_ret,R_frame=R_video.read()D_ret,D_frame=D_video.read()if F_frame is None  or B_frame is None or L_frame is None or R_frame is None or D_frame is None:breakif F_ret==True and B_ret==True and L_ret==True and R_ret==True and D_ret==True:obj540.run(F_frame,B_frame,L_frame,R_frame,D_frame,Dstimg,0)  obj540.js_DrawCar(Dstimg,resize_CarImage,0)Dstimg=obj540.drawTxt(Dstimg)cv2.imshow("avm540",Dstimg)if cv2.waitKey(25) & 0xFF==27:break
F_video.release()
B_video.release()
L_video.release()
R_video.release()
D_video.release()
cv2.destroyAllWindows()

注:当前python的版本效率比较低,需要加速的可以自行优化加速代码,实现的过程是从C代码直接转换过来的,没有进行任何的优化加速。

测试实现的效果:


http://www.ppmy.cn/ops/143553.html

相关文章

【go每日一题】 实现生产者消费者模式

基本描述 golang使用并发编程,实现一个生产者消费者模式,消费的任务耗时1-3秒,希望最终10秒内能够消费尽可能多的任务 代码 package testimport ("fmt""math/rand""testing""time" )type Consume…

【python实战】-- 解压提取所有指定文件的指定内容

系列文章目录 文章目录 系列文章目录前言一、pandas是什么?1、需求2、程序 总结 前言 一、pandas是什么? 1、需求 指定目录下有若干文件 批量解压 需要汇总包含指定字符的所有文件中的指定数据 2、程序 import os import shutil import zipfile impor…

LIF神经元模型的显隐转换

本文星主将介绍LIF神经元模型的显式和隐式转换(星主看见有论文[1]是这个称呼的,所以本文也称显式和隐式),并得到隐式模型的解析解。注意:理解本文内容需要有一定的微积分基础,如果大家看着数学头疼&#xf…

【GCC】2015: draft-alvestrand-rmcat-congestion-03 机器翻译

腾讯云的一个分析,明显是看了这个论文和草案的 : 最新的是应该是这个 A Google Congestion Control Algorithm for Real-Time Communication draft-ietf-rmcat-gcc-02 下面的这个应该过期了: draft-alvestrand-rmcat-congestion-03

Differential Transformer: 通过差分注意力机制提升大语言模型性能

Transformer模型已经成为大语言模型(LLMs)的标准架构,但研究表明这些模型在准确检索关键信息方面仍面临挑战。今天介绍一篇名叫Differential Transformer的论文,论文的作者观察到一个关键问题:传统Transformer模型倾向…

使用宝塔面板中的Nginx部署前端Vue项目

我相信已经到这一步了,Nginx和宝塔过多的描述我就不说了,直接上干货实操。 第一步:前端项目打包 直接运行Npm run build命令进行打包,会打成一个dist的压缩包 注意:我们前端打包的时候要修改我们连接后端接口的&…

玩一下FPGA(TODO)

Intel Cyclone IV 是一款流行的 FPGA (现场可编程门阵列) 系列,广泛用于嵌入式设计和各种硬件加速应用。要用 Intel Cyclone IV 实现一个最简单的功能,我们可以从设计一个基础的 LED 控制器开始,这个设计可以作为一个入门项目来帮助你理解 FP…

用python实现滑雪小游戏,附源码

一个简单的基于文本的滑雪小游戏示例代码,在这个游戏中玩家控制一个滑雪者在有障碍物的雪道上滑行,尽量避开障碍物并获取更高的分数。 ● Skier类表示滑雪者,有位置属性和移动、转向方法。 ● Obstacle类表示障碍物,有位置属…