c语言版本和算法原理的可以查看本人的其他文档。《自动驾驶AVM环视算法--超广角模式/转向模式/3D碗型投影模式/窄边模式/车轮模式等的实现》本文档进用于展示部分代码的视线,获取方式网盘自行获取(非免费介意勿下载):链接: https://pan.baidu.com/s/1stxuC_h3CMtvKdqqL_6_dg 提取码: k6fk 。
测试的环境:
以下是主运行函数的部分代码(仅供参考):
import cv2
from runWheel import *
FBLR=3 #设置视角 FL:0 FR:1 BL:2 BR:3
# 导入 MyClass 类
from runWheel import avmobjData # 创建类的实例
runWheel = avmobjData() L_open=True
R_open=TrueL_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#初始化函数
runWheel.init(FBLR)
# 创建一个三通道的彩色图像(RGB),初始值为 0(黑色)
Dstimg = np.zeros((JS_AVM_IMGH, JS_AVM_IMGW, 3), dtype=np.uint8)
while L_open and R_open:L_ret,L_frame=L_video.read()R_ret,R_frame=R_video.read()if L_frame is None or R_frame is None is None:breakif L_ret==True and R_ret==True:runWheel.run(L_frame,R_frame,Dstimg,FBLR) #runWheel.js_DrawCar(Dstimg,resize_CarImage,1)Dstimg=runWheel.drawTxt(Dstimg)cv2.imshow("avmWheel",Dstimg)if cv2.waitKey(25) & 0xFF==27:break
L_video.release()
R_video.release()
cv2.destroyAllWindows()
注:当前python的版本效率比较低,需要加速的可以自行优化加速代码,实现的过程是从C代码直接转换过来的,没有进行任何的优化加速。
测试实现的效果: