生活工程体验信仰哲学精神
投稿投诉
精神世界
探索历史
哲学文学
艺术价值
信仰创造
境界审美
体验技术
技能工具
工程信息
医学生产
生活运用
操作能力

强!汽车车道视频检测pythonOpenCV为主实现

4月16日 罗刹长投稿
  1说明:
  1。1完整版:汽车车道动态视频检测讲解和注释版代码,小白秒懂。
  1。2pythonOpenCVmoviepynumpy为主的技术要点。
  1。3代码来源:https:github。comlinghugoogleCarNDAdvancedLaneLines虽然感觉也是fork别人的,别忘了给他点个赞star
  1。4感谢原作者,并对文件进行修改和代码进行删减,注释等操作,便于操作和理解。
  1。5应用:无人驾驶汽车技术,热门!
  2效果展示:由于gif10MB,所以是节选。
  2。1原视频节选:
  2。2处理后视频节选:
  3准备:
  3。1环境:python3。8OpenCV4。2。0deepinlinux操作系统。
  3。2文件结构:
  github下载下来
  projectvideo。mp4:原始视频,未进行标注
  vedioout:文件夹为输出被标注的视频(处理后的视频文件夹)
  cameracal:相机参数标定文件夹。
  4代码讲解:
  4。1line。py代码:coding:utf8导入模块importnumpyasnp定义line这个类classLine():初始化参数definit(self):wasthelinedetectedinthelastiteration?self。detectedFalsexvaluesofthelastnfitsofthelineself。recentfitted〔np。array(〔False〕)〕averagexvaluesofthefittedlineoverthelastniterationsself。bestxNonepolynomialcoefficientsaveragedoverthelastniterationsself。bestfitNonepolynomialcoefficientsforthemostrecentfitself。currentfit〔np。array(〔False〕)〕radiusofcurvatureofthelineinsomeunitsself。radiusofcurvatureNonedistanceinmetersofvehiclecenterfromthelineself。linebaseposNonedifferenceinfitcoefficientsbetweenlastandnewfitsself。diffsnp。array(〔0,0,0〕,dtypefloat)xvaluesfordetectedlinepixelsself。allxNoneyvaluesfordetectedlinepixelsself。allyNone检测侦测defcheckdetected(self):if(self。diffs〔0〕0。01andself。diffs〔1〕10。0andself。diffs〔2〕1000。)andlen(self。recentfitted)0:returnTrueelse:returnFalse更新defupdate(self,fit):iffitisnotNone:ifself。bestfitisnotNone:self。diffsabs(fitself。bestfit)ifself。checkdetected():self。detectedTrueiflen(self。recentfitted)10:self。recentfittedself。recentfitted〔1:〕self。recentfitted。append(fit)else:self。recentfitted。append(fit)self。bestfitnp。average(self。recentfitted,axis0)self。currentfitfitelse:self。detectedFalseelse:self。bestfitfitself。currentfitfitself。detectedTrueself。recentfitted。append(fit)
  4。2utils。py代码省略。
  4。3mainpipeline。py(就是代码为:pipeline。py)coding:utf8第1步:导入模块importosimportcv2importmatplotlib。pyplotaspltimportnumpyasnpfrommoviepy。editorimportVideoFileClipimportline自定义模块importutils自定义模块第2步:图片阈值处理defthresholding(img):settingallsortsofthresholdsxthreshutils。abssobelthresh(img,orientx,threshmin10,threshmax230)magthreshutils。magthresh(img,sobelkernel3,magthresh(30,150))dirthreshutils。dirthreshold(img,sobelkernel3,thresh(0。7,1。3))hlsthreshutils。hlsselect(img,thresh(180,255))labthreshutils。labselect(img,thresh(155,200))luvthreshutils。luvselect(img,thresh(225,255))Thresholdingcombinationthreshholdednp。zeroslike(xthresh)threshholded〔((xthresh1)(magthresh1))((dirthresh1)(hlsthresh1))(labthresh1)(luvthresh1)〕1returnthreshholded第3步:视频拟合和图片纠正defprocessing(img,objectpoints,imgpoints,M,Minv,leftline,rightline):cameracalibration,imagedistortioncorrectionundistutils。calundistort(img,objectpoints,imgpoints)getthethresholdedbinaryimagethresholdedthresholding(undist)performperspectivetransformthresholdedwrapedcv2。warpPerspective(thresholded,M,img。shape〔1::1〕,flagscv2。INTERLINEAR)performdetectionifleftline。detectedandrightline。detected:leftfit,rightfit,leftlaneinds,rightlaneindsutils。findlinebyprevious(thresholdedwraped,leftline。currentfit,rightline。currentfit)else:leftfit,rightfit,leftlaneinds,rightlaneindsutils。findline(thresholdedwraped)leftline。update(leftfit)rightline。update(rightfit)drawthedetectedlanelineandtheinformationareaimgutils。drawarea(undist,thresholdedwraped,Minv,leftfit,rightfit)curvature,posfromcenterutils。calculatecurvandpos(thresholdedwraped,leftfit,rightfit)resultutils。drawvalues(areaimg,curvature,posfromcenter)returnresult第4步:步骤:划线校正读取原视频和生成修改后的视频划线leftlineline。Line()左线rightlineline。Line()右线获取棋盘格图片使用提供的一组棋盘格图片计算相机校正矩阵(cameracalibrationmatrix)和失真系数(distortioncoefficients)。calimgsutils。getimagesbydir(homexgjDesktopvcarlinegoodcameracal)计算objectpoints,imgpointsobjectpoints,imgpointsutils。calibrate(calimgs,grid(9,6))M,Minvutils。getMMinv()需要修改的视频:原视频projectvideoclipVideoFileClip(homexgjDesktopvcarlinegoodprojectvideo。mp4)输出修改后的视频:完成视频projectoutpathhomexgjDesktopvcarlinegoodvediooutprojectvideoout。mp4制作视频projectvideooutclipprojectvideoclip。flimage(lambdaclip:processing(clip,objectpoints,imgpoints,M,Minv,leftline,rightline))projectvideooutclip。writevideofile(projectoutpath,audioFalse)
  5完结:
  5。1以上代码完整,但制作视频估计花20分钟,我也是将代码最简化跑起来。
  5。2如果逐步深入分析,可能要从基本开始。
  5。3可以参考这篇文章:https:zhuanlan。zhihu。comp46146266
投诉 评论

你拥有让自己清醒生活的勇气吗译者:SPC丨壹心理专栏作者作者:StevePavlinaSecurityismostlyasuperstition。安全大抵虚幻,Itdoesnote……分娩时产妇如何配合助产人员产痛是每个妈妈都要经历的,每个人对疼痛的感受各不相同,有的是腰痛有的是肚痛,至今还没听说过产痛不痛的。那么分娩时产妇如何配合助产人员呢?下面就跟着本站小编一起来看一下吧!……耳朵有脓是怎么回事?小心是它偷偷吃掉你的骨头肖女士今年28岁,在贵阳一家科技公司做销售经理,平常业务繁忙,对自己的身体疏于照顾。这天,肖女士发现自己的耳朵有些轻微的疼痛,但一向粗枝大叶的她以为是喝酒导致的,所以没太在意。……有机木耳的功效有机木耳主要分布于黑龙江、吉林、福建、台湾、湖北、广东、广西、四川、贵州、云南等地,生长于栎、杨、榕、槐等120多种阔叶树的腐木上,单生或群生,那有机木耳的营养价值更高吗?有机……小圈子造句用小圈子造句大全【小圈子xioqunzi】:1。狭小的范围(指生活见识等)。2。为私利而互相拉拢互相利用的小集团。(1)青春啊,难道你始终囚禁在狭小圈子里?你得撕破老年的盅惑人心的网。泰……墙面防潮剂的用法由于地面和墙面的潮气,引起地板开裂,霉变,滋生细菌!以及引起墙面脱皮,起泡,粉化,剥落,返霜,长毛等问题!如果是工厂,试验室,仓库,粮仓,档案馆不仅给生产生活带来麻烦还会造成直……这支舞虞美人,翩翩佳人美如画!为什么越来越多人喜欢古典舞?温盏三月杏雨浇塞外烟尘清柔荑轻整袖衣惊鸿残阳和山青闻过易水寒音风飒飒雪凄凄敲案缓歌一曲今与君霸王别姬虞美人由美人虞姬得名。她是美……从入学规划到就业指导,一对一专业解答之电子工程专业Q:电子工程专业的细分方向?A:实际上,在我国的大学专业设置中,电子信息科学与技术,电子信息工程,电子科学与技术,微电子等专业其实都属于电子工程专业。Q:我读电子工……世界上最让人惊讶的十条公路世界各国的公路纵横交错、四通八达,这些公路造型复杂,让人觉得不可思议。下面小编就为大家介绍介绍世界上最让人惊讶的十条公路。一、世界上最陡的街道新西兰但尼世界各……高端奶粉选择惠氏启赋蓝钻还是美赞臣蓝臻?启赋是惠氏营养品旗下一款瑞士进口婴幼儿配方奶粉,惠氏Wyeth成立于1915年,主要涉及研究、开发、制造和销售药品、疫苗、生物制品、营养品和非处方药品等方面业务,上个世纪80年……今天致敬!中国人民抗日战争暨世界反法西斯战争胜利76周年纪念今天(9月3日)是中国人民抗日战争暨世界反法西斯战争胜利76周年纪念日14年艰苦卓绝的抗日战争3500多万同胞伤亡14年不是一段时间而是烧杀……强!汽车车道视频检测pythonOpenCV为主实现1说明:1。1完整版:汽车车道动态视频检测讲解和注释版代码,小白秒懂。1。2pythonOpenCVmoviepynumpy为主的技术要点。1。3代码来源:h……
那条温暖的路历史的天空13小学语文基础知识常见的说明法集团企业人力资源管理面临挑战与模式选择的探究课本上消失的风筝为什么不敢生二胎了?这是我见过最扎心的答案1岁男童吞电池导致食管被腐蚀,警惕家里的这些危险退烧了是不是排除新冠肺炎如何排除患新型肺炎产后瘦身,不节食不锻炼的减肥方法,我整理了亲测的这六种三个快速打造个人的超级捷径秘籍如何玩转抖音打造品牌实现快速涨粉热小孩子是认生好,还是不认生好?家长首先搞清楚,什么是认生轮融资后估值近百亿美元,用户型企业极氪为何越走越顺?微信绑定了银行卡的,这个开关一定要关掉,。。。快过年的说说心情短语华为nova8SE4G版发布中芯国际14nm麒麟710A怎么样减肥才有效果呢?六年级叙事作文国旗下演讲四景画为朱天锡题其一离婚后一方欠下的债务该如何还生活论谭语丝明天周三大盘走势预测对岗竞聘演讲稿严防小儿的牛奶贫血症三国杀死人比活人更有用?盘点武将中的那些食尸鬼

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找