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

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

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

测试的环境:

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

import cv2 
from runTOP import * # 导入 MyClass 类  
from runTOP import avmobjData  # 创建类的实例  
runTOP = 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=FalseCarImage = cv2.imread("top.png")  
print(F_open,B_open,L_open,R_open)
#初始化函数
new_width,new_height=runTOP.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: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()if F_frame is None  or B_frame is None or L_frame is None or R_frame is None is None:breakif F_ret==True and B_ret==True and L_ret==True and R_ret==True:runTOP.run(F_frame,B_frame,L_frame,R_frame,Dstimg,0)  runTOP.js_DrawCar(Dstimg,resize_CarImage,1)Dstimg=runTOP.drawTxt(Dstimg)cv2.imshow("avmTOP",Dstimg)if cv2.waitKey(25) & 0xFF==27:break
F_video.release()
B_video.release()
L_video.release()
R_video.release()
cv2.destroyAllWindows()

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

测试实现的效果:

相关文章:

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

c语言版本和算法原理的可以查看本人的其他文档。《自动驾驶AVM环视算法--全景的俯视图像和原图》本文档进用于展示部分代码的视线,获取方式网盘自行获取(非免费介意勿下载):链接: https://pan.baidu.com/s/1MJa8ZCEfNyLc5x0uVegto…...

Go 语言与时间拳击理论下的结对编程:开启高效研发编程之旅

一、引言 结对编程作为一种软件开发方法,在提高代码质量、增强团队协作等方面具有显著优势。而时间拳击理论为结对编程带来了新的思考角度。本文将以 Go 语言为中心,深入探讨时间拳击理论下的结对编程。 在当今软件开发领域,高效的开发方法和…...

Qt+OPC开发笔记(一):OPCUA介绍、open62541介绍、编译与基础环境Demo

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/144516882 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...

ElasticSearch 常见故障解析与修复秘籍

文章目录 一、ElasticSearch启动服务提示无法使用root用户二、ElasticSearch启动提示进程可拥有的虚拟内存少三、ElasticSearch提示用户拥有的可创建文件描述符太少四、ElasticSearch集群yellow状态分析五、ElasticSearch节点磁盘使用率过高,read_only状态问题解决六…...

序列模型的使用示例

序列模型的使用示例 1 RNN原理1.1 序列模型的输入输出1.2 循环神经网络(RNN)1.3 RNN的公式表示2 数据的尺寸 3 PyTorch中查看RNN的参数4 PyTorch中实现RNN(1)RNN实例化(2)forward函数(3&#xf…...

对rust的全局变量使用drop方法

文章目录 rust处理全局变量的策略方法1:在main中自动Drop全局变量 参考 rust处理全局变量的策略 Rust 的静态变量不会在程序退出时自动调用 Drop,因为它们的生命周期与进程绑定。 use std::sync::OnceLock;struct GlobalData {content: String, }impl …...

Node.js教程入门第一课:环境安装

对于一个程序员来说,每学习一个新东西的时候,第一步基本上都是先进行环境的搭建! 从本章节开始让我们开始探索Node.js的世界吧! 什么是Node.js? 那么什么是Node.js呢?简单的说Node.js 就是运行在服务端的 JavaScript JavaScript…...

Visual Studio 使用 GitHub Copilot 扩展

🎀🎀🎀【AI辅助编程系列】🎀🎀🎀 Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码Visual Studio 安装和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 扩展Visual Studio 使用 GitHu…...

【Qualcomm】IPQ5018获取TR069 WiFi 接口Stats状态方法

IPQ5018 简介 IPQ5018 是高通(Qualcomm)公司推出的一款面向网络设备的系统级芯片(SoC)。它通常用于路由器、接入点和其他网络设备中,提供高性能的无线网络连接。以下是关于 IPQ5018 的一些关键特性和功能: 关键特性 高性能处理器 IPQ5018 集成了多核 CPU,通常是 ARM …...

数字营销咨询,照亮企业营销数字化每一步

在快消品领域,面对市场竞争日益激烈的现状,营销端的数字化升级已经成为企业生意增长的重要驱动力。 然而,鉴于营销端数字化建设的高昂成本及其广泛覆盖的业务范畴,企业在启动此类项目之前,通常会遭遇一系列挑战与顾虑&…...

修改vscode中emmet中jsx和tsx语法中className的扩展符号从单引号到双引号 - HTML代码补全 - 单引号双引号

效果图 实现步骤 文件 > 首选项 > 设置搜索“”在settings.json中修改,增加 "emmet.syntaxProfiles": {"html": {"attr_quotes": "single"},"jsx": {"attr_quotes": "double","…...

【Cmake】

1 设置安装路径 -DCMAKE_INSTALL_PREFIX"安装路径"2 使用交叉编译 -DCMAKE_C_COMPILE"交叉编译器绝对路径"3 编译静态库 -DPAHO_BUILD_STARTTRUE...

Flutter 内嵌 unity3d for android

前言: 最近刚整完 unity3d hybridCLR 更新代码和资源,我们 趁热打铁 将 Unity3D 嵌入 Flutter 应用中。实现在 Flutter 使用 Unity3D, 可以做 小游戏 大游戏; 之前都是 内嵌 Webview 来实现的。虽然 CocosCreator 做出来的效果也不错&#xf…...

sqlite加密-QtCipherSqlitePlugin 上

1、下载并解压软件 https://download.csdn.net/download/notfindjob/90140129 2、编译(可支持Qt5.12编译) 3、安装插件...

正交投影 (Orthographic Projection) 详解

正交投影 (Orthographic Projection) 详解 正交投影是一种将三维空间中的物体投影到二维平面上的方法,它在计算机图形学、建筑设计、工程绘图等领域中广泛应用。与透视投影不同,正交投影不会随着距离的变化而改变物体的大小,因此所有平行线在…...

盛元广通畜牧与水产品检验技术研究所LIMS系统

一、系统概述 盛元广通畜牧与水产品检验技术研究所LIMS系统集成了检测流程管理、样品管理、仪器设备管理、质量控制、数据记录与分析、合规性管理等功能于一体,能够帮助实验室实现全流程的数字化管理。在水产、畜牧产品的质检实验室中,LIMS系统通过引入…...

三维空间刚体运动4-1:四元数表示变换(各形式相互转换加代码——下篇)

三维空间刚体运动4-1:四元数表示变换(各形式相互转换加代码——下篇) 4. 四元数到其它旋转表示的相互转换4.1 旋转向量4.2 旋转矩阵4.3 欧拉角4.3.1 转换关系4.3.2 转换中的万象锁问题 5. 四元数的其他性质5.1 旋转的复合5.2 双倍覆盖5.3 指数…...

PyTorch如何通过 torch.unbind 和torch.stack动态调整张量的维度顺序

笔者一篇博客PyTorch 的 torch.unbind 函数详解与进阶应用:中英双语中有一个例子如下: # 创建一个 3x2x2 的三维张量 x torch.tensor([[[1, 2], [3, 4]],[[5, 6], [7, 8]],[[9, 10], [11, 12]]])# 第一步:沿第 0 维分解为 3 个 2x2 张量 un…...

【Unity3D】报错libil2cpp.so找不到问题

mainTemplate.gradle文件末尾添加: **IL_CPP_BUILD_SETUP** 此报错发生在低版本的Unity升级到高版本后,例如Unity2019升级到Unity2021,而Unity2019默认创建的mainTemplate.gradle文件是不包含**IL_CPP_BUILD_SETUP** 因此会导致libil2cpp.so…...

事件冒泡机制详解

一、事件传播的三个阶段 1. 捕获阶段 事件从最外层元素(如document)开始,沿着 DOM 树向目标元素传播。这个阶段就像是事件的“下行通道”,在这个过程中,事件会经过目标元素的祖先元素。不过,在捕获阶段&a…...

避坑指南:展锐平台Camera驱动移植中那些容易出错的配置项(以OV08A10为例)

展锐平台Camera驱动移植实战:OV08A10关键配置避坑手册 当你在展锐平台上移植OV08A10摄像头驱动时,是否遇到过这样的场景:所有配置看似正确,但摄像头就是无法正常工作?预览黑屏、图像异常或设备根本无法识别传感器——这…...

飞秒激光微纳加工:原理、系统选型与典型应用实践

1. 飞秒激光加工:微纳世界的“手术刀”在精密制造领域,尤其是半导体、生物医疗和光子芯片这些前沿行业,对加工精度的要求已经到了纳米甚至亚纳米级别。传统的机械加工、长脉冲激光加工,在面对这种“微雕”任务时,往往显…...

揭秘Intel DCI与System Debugger:深入追踪CSME/BIOS在主机启动中的关键信息流

1. 认识Intel DCI与System Debugger 如果你曾经遇到过电脑开机卡在Logo界面、反复重启或者直接黑屏的情况,作为工程师的你一定想知道:到底哪里出了问题?这时候,Intel DCI(Direct Connect Interface)和Syste…...

别再死记硬背公式了!用Python动画直观理解SAR距离徙动(附代码)

用Python动画拆解SAR距离徙动:从数学恐惧到视觉理解 雷达工程师们常开玩笑说,合成孔径雷达(SAR)成像有两个门槛:一个是昂贵的硬件设备,另一个是让人望而生畏的数学公式。当我第一次看到距离徙动&#xff08…...

终极音频格式转换指南:FlicFlac让音乐文件兼容性不再是难题!

终极音频格式转换指南:FlicFlac让音乐文件兼容性不再是难题! 【免费下载链接】FlicFlac Tiny portable audio converter for Windows (WAV FLAC MP3 OGG APE M4A AAC) 项目地址: https://gitcode.com/gh_mirrors/fl/FlicFlac 还在为不同设备无法…...

ATxmega时钟与GPIO配置详解:从原理到实战代码

1. 项目概述:从零开始认识ATxmage的时钟与GPIO最近在整理一些嵌入式开发的入门资料,发现很多刚接触ATxmage系列微控制器的朋友,拿到开发板后往往第一步就卡在了最基础的时钟配置和引脚操作上。这其实很正常,因为这两个模块是整个系…...

2026全球AI公司终极排名:从字节跳登顶到Claude Code称霸,十大巨头全维对比

2026全球AI公司终极排名:从字节跳登顶到Claude Code称霸,十大巨头全维对比 从字节跳动登顶到SpaceX 600亿美元收购Cursor,2026年的AI牌桌已经彻底重洗。本文带你一次性搞清全球AI格局。 目录 2026全球AI公司权威排名十大AI公司深度介绍AI编程助手终极对比AI Agent…...

给程序员和数据分析师的气象学入门:搞懂城市边界层,让你的天气API数据不再‘失真’

给程序员和数据分析师的气象学入门:搞懂城市边界层,让你的天气API数据不再‘失真’ 当你在调用天气API时,是否遇到过这样的困惑:明明获取的是同一个城市的温度数据,为什么市中心的气温总比郊区高出几度?为什…...

告别杂音!在RK3588上搞定HDMI音频采集与实时播放的保姆级教程

告别杂音!RK3588 HDMI音频采集与实时播放的终极调优指南 当你在RK3588开发板上调试HDMI音频采集时,是否曾被突如其来的"哒哒"声搞得焦头烂额?这种高频杂音不仅影响用户体验,更可能掩盖音频流的真实质量。本文将带你深入…...

折叠Cascode运放设计避坑指南:从90dB增益掉到60dB?可能是这5个细节没做好

折叠Cascode运放设计避坑指南:从90dB增益掉到60dB?可能是这5个细节没做好 在模拟IC设计的深水区,折叠Cascode运算放大器就像一位优雅的芭蕾舞者——看似轻盈的架构下隐藏着对每个技术细节的极致把控。当您精心设计的电路从仿真器中吐出60dB增…...