当前位置: 首页 > article >正文

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

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:
        break
    if 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.kler.cn/a/443432.html

相关文章:

  • C# XPTable 带图片的增删改查(XPTable控件使用说明十三)
  • Selenium 的四种等待方式及使用场景
  • 你好,2025!JumpServer开启新十年
  • 『SQLite』常见日期时间函数的使用
  • [Linux]redis5.0.x升级至7.x完整操作流程
  • Python 爬虫验证码识别
  • C++ Learning explicit关键字•静态成员
  • 机器人阻抗和导纳控制的区别
  • Azure虚拟机非托管磁盘大小调整
  • 三相异步电动机噪音大有哪些原因?
  • Java线程池解读
  • 东方博宜24年12月-B组(才俊)- 重铠马的选择
  • 如何利用Python爬虫获得1688按关键字搜索商品
  • SSL Version 2 and 3 Protocol Detection漏洞修复
  • C#经典算法面试题
  • 【ORACLE】一个允许关键字作为别名所引起的语法歧义场景
  • Python轻量级NoSQL数据库TinyDB
  • 智能人家谱程序创意
  • 使用 Elasticsearch 查询和数据同步的实现方法
  • C语言中的转义字符
  • 答题考试系统v1.6.1高级版源码分享+uniapp+搭建测试环境
  • Java:链接redis报错:NoSuchElementException: Unable to validate object
  • SSM 赋能 Vue 助力:新锐台球厅管理系统的设计与实现的辉煌之路
  • 模型 六西格玛(质量管理)
  • 嵌入式单片机中对应GPIO外设详解实现
  • 图书馆管理系统(三)基于jquery、ajax