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

c语言版本和算法原理的可以查看本人的其他文档。《自动驾驶AVM环视算法--更新超广角视图算法和exe测试demo》本文档进用于展示部分代码的视线,获取方式网盘自行获取(非免费介意勿下载):链接: https://pan.baidu.com/s/1oYChfFYbWtrSvOgQzw7nYQ 提取码: 6a35 。

测试的环境:

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

复制代码
import cv2 
from runAngle import * 

# 导入 MyClass 类  
from runAngle import avmobjData  
flag =0#设置视角,0f 1b 2l 3r
# 创建类的实例  
runAngle = avmobjData()  

F_open=True
B_open=True
L_open=True
R_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

print(F_open,B_open,L_open,R_open)

if flag==0:
    while F_open :
        F_ret,F_frame=F_video.read()
        srcH, srcW, _ = F_frame.shape  
        # 设置目标图像的宽度和高度  
        dstW = srcH * 3  
        dstH = srcH  
        # 调用 js_imgRect 函数  
        Dstimg = runAngle.js_imgRect(F_frame, srcW, srcH, dstW, dstH)     
        
        if F_frame is None:
            break
        if F_ret==True :           
            cv2.imshow("avmAngle",Dstimg)
            if cv2.waitKey(25) & 0xFF==27:
                break
    F_video.release()
    cv2.destroyAllWindows()
if flag==1:
    while B_open:
        B_ret,B_frame=B_video.read()
        srcH, srcW, _ = B_frame.shape  
        # 设置目标图像的宽度和高度  
        dstW = srcH * 3  
        dstH = srcH  
        # 调用 js_imgRect 函数  
        Dstimg = runAngle.js_imgRect(B_frame, srcW, srcH, dstW, dstH)     
        if B_frame is None :
            break
        if B_ret==True:
            cv2.imshow("avmAngle",Dstimg)
            if cv2.waitKey(25) & 0xFF==27:
                break
    B_video.release()
    cv2.destroyAllWindows()
if flag==2:
    while L_open:
        L_ret,L_frame=L_video.read()
        srcH, srcW, _ = L_frame.shape  
        # 设置目标图像的宽度和高度  
        dstW = srcH * 3  
        dstH = srcH  
        # 调用 js_imgRect 函数  
        Dstimg = runAngle.js_imgRect(L_frame, srcW, srcH, dstW, dstH)     
        
        if L_frame is None:
            break
        if L_ret==True:
            cv2.imshow("avmAngle",Dstimg)
            if cv2.waitKey(25) & 0xFF==27:
                break
    L_video.release()
    cv2.destroyAllWindows()
if flag==3:
    while R_open:
        R_ret,R_frame=R_video.read()
        srcH, srcW, _ = R_frame.shape  
        # 设置目标图像的宽度和高度  
        dstW = srcH * 3  
        dstH = srcH  
        # 调用 js_imgRect 函数  
        Dstimg = runAngle.js_imgRect(R_frame, srcW, srcH, dstW, dstH)     
        if R_frame is None:
            break
        if R_ret==True:
            cv2.imshow("avmAngle",Dstimg)
            if cv2.waitKey(25) & 0xFF==27:
                break
    R_video.release()
    cv2.destroyAllWindows()

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

测试实现的效果:

相关推荐
火山引擎开发者社区18 分钟前
龙虾突然“罢工”?别慌,我们派出了“AI 医生”
人工智能
NQBJT22 分钟前
青鸾云步:基于 Cordova 的 AI 导盲机器人 APP 全栈开发实战
人工智能·app·导盲·轮足机器人·青鸾云步
深兰科技1 小时前
韩国KAIST AI半导体高管项目代表团到访深兰科技,聚焦AI算力与智能产业合作机会
人工智能·机器人·symfony·ai算力·深兰科技·韩国科学技术院·kaist
快乐on9仔1 小时前
NLP学习(一)transformers之pipeline体验
人工智能·深度学习
冬奇Lab1 小时前
Agent系列(六):记忆管理——让 Agent 记住重要的事
人工智能·agent
冬奇Lab1 小时前
一天一个开源项目(第113篇):notebooklm-py - 把 Google NotebookLM 变成可编程 API,还能接入 Claude Code
人工智能·google·开源
字节跳动开源2 小时前
Viking AI 搜索 CLI 正式发布:会说话,就能做搜索推荐
数据库·人工智能·开源
阿杰技术2 小时前
AI 编程助手落地实战:从提效到重构的全场景指南
人工智能·重构
Agent手记2 小时前
制造业生产流程自动化,Agent需要具备哪些能力?深度拆解2026工业级智能体落地范式与核心架构
大数据·人工智能·ai·架构·自动化