**利用opencv可以实现视频中公路上的车辆数量检测,但是opencv的识别准确率不够高,如需提高准确率还得使用深度学习的一些算法。**以下附上源码:

#导包
import cv2
import numpy as np
#计算矩形中心点
def center(x,y,w,h):x1=int(w/2)y1=int(h/2)cx=int(x)+x1cy=int(y)+y1return cx,cy
#划线偏移量
offset=8
#线高
line_high=600
#存放车中心点的列表
cars=[]
#车数量
num=0
#读取摄像头
video=cv2.VideoCapture('./9b3ae12a0660e8daa0e3cb42ab26377d.mp4')
#mog算法,创建mog对象
mog=cv2.createBackgroundSubtractorMOG2()
#获取形态学卷积核
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5,5))
#循环读取数据
while True:#ret为标志位,读取到视频时为True,否则为False#frame为读取的视频ret,frame=video.read()#如果读取到视频if ret:#灰度化处理gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)#去噪,高斯滤波#blur=cv2.boxFilter(gray,-1,(9,9))blur=cv2.GaussianBlur(gray,(7,7),5)#blur=cv2.bilateralFilter(gray,5,120, 150)#创建前景掩码mask=mog.apply(blur)#腐蚀操作erode = cv2.erode(mask,kernel,iterations=1)#膨胀,把图像还原回来dilate=cv2.dilate(erode,kernel,iterations=1)#消除小方块,闭运算close=cv2.morphologyEx(dilate,cv2.MORPH_CLOSE,kernel)#查找轮廓contours, hierarchy=cv2.findContours(close,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)#划线cv2.line(frame,(10,line_high),(1200,line_high),(0,0,255),thickness=2)#画出轮廓for contour in contours:#最大外接矩形x,y,w,h=cv2.boundingRect(contour)#过滤小框is_valid=(w>60) &(h>50)if not is_valid:continue#画矩形cv2.rectangle(frame,(int(x),int(y)),(int(x+w),int(y+h)),(0,255,0),2)#车中心点cpoint=center(x,y,w,h)#将中心点加入列表cars.append(cpoint)#以中心点为中心画圆cv2.circle(frame,(cpoint),5,(0,255,0),-1)#判断汽车过检测线for (x,y) in cars:#检测范围以内if y>(line_high-offset) and y<(line_high+offset):#车数量加一num+=1#移除已经计算的cars.remove((x,y))#打印车的数量print('车的数量为:',num)#展示视频#cv2.imshow('erode',erode)#cv2.imshow('dilate',close)#在图上加文本cv2.putText(frame,'Vehicle Counts:'+str(num),(500,60),cv2.FONT_HERSHEY_SIMPLEX,2,(255,0,0),5)#显示图像cv2.imshow('frame',frame)#10ms一帧,可自己修改key=cv2.waitKey(10)#可按ESC退出视频展示if key == 27:break
#释放资源
video.release()
#关闭窗口
cv2.destroyAllWindows()

基于opencv的车辆数量检测相关推荐

  1. 案例-使用python实现基于opencv的车辆识别

    写在开头,接触opencv也有很长一段时间了,中间还接触了halcon.但都是基于C++实现,发现如果有什么idea,还是使用python可以快速实现.基于C++版本的后期会有更新. 首先,这个案例是 ...

  2. 运用特征脸方法的基于Opencv的猫脸检测实现

    本文禁止转载.抄袭,请尊重作者权利. 使用特征脸方法的基于Opencv的猫脸检测实现 摘要 目前,在计算机视觉和模式识别领域,脸识别技术是一个很活跃的课题,人脸识别的方法已经十分丰富,而对于日常生活中 ...

  3. 基于Opencv的车距检测系统(源码&教程)

    1.研究背景 对本车前方车辆的识别及距离检测是计算机视觉技术在智能网联汽车中的一个重要内容.要想在错综繁杂的交通环境中实现无人驾驶,对行车环境中其他车辆信息的获取是十分重要的.因此,对本车前方车辆的识 ...

  4. Python基于OpenCV的实时疲劳检测[源码&演示视频&部署教程]

    1.图片演示 2.视频演示 [项目分享]Python基于OpenCV的实时疲劳检测[源码&演示视频&部署教程]_哔哩哔哩_bilibili 3.检测方法 1)方法 与用于计算眨眼的传统 ...

  5. 基于OpenCV的条形码区域检测(一)

    基于OpenCV的条形码区域检测(一) 1.已有方案  能够很轻松地在网上找到这一篇文章<使用Python和OpenCV检测图片上的条形码_Adrian Rosebrock>,原文:'De ...

  6. 基于OpenCV的混凝土裂纹检测

    基于OpenCV的混凝土裂纹检测 前言 这是我发的第一次博客,有什么建议大家可以给我留言,感激不尽! 接下来,我们进入正题. 一.使用函数库 numpy, opencv, heapq, skimage ...

  7. Python基于OpenCV的异常行为检测系统[源码&部署教程]

    1.项目背景 智能视频监控(Intelligent Video Surveillance , IVS)[1.2·3.4是计算机视觉技术5l在安防领域的应用,实现了由"被动监控"到& ...

  8. RIKIBOT使用系列-基于Opencv HSV的色块检测

    目录 一. 简介 二.查找色值 1.摄像头的角度调 2.启动检测与查找 三. 验证HSV色值 1.写入色值到文件 2.启动检测 四.交流方式 一. 简介 这里学习一下如何用摄像头检测HSV色值,Ope ...

  9. 基于OpenCV监控老鼠蟑螂检测系统[完整源码&部署教程]

    1.视频演示: [项目分享]Python基于OpenCV监控老鼠蟑螂检测系统[完整源码&部署教程]_哔哩哔哩_bilibili 2.图片演示: 3.算法原理: 该博客提出的移动侦测即是根据视频 ...

最新文章

  1. Redis环境配置(核心配置选项)
  2. [MATLAB调试笔记]时变循环诊断——[Vx(x)],[Vx(t),Vy(t),Vz(t)],[Ex(x)],[波];[Eng(t)],[Ex(k)],[Ex(x,t)],[logEx(x.t)]
  3. 使用VMware VSphere WebService SDK进行开发 (一)——基本信息阐述
  4. android onclick执行顺序,错误“无法执行android:onClick的方法”
  5. Python的小特别
  6. 为什么要在Java SE 7的数字中使用下划线-在数字文字中使用下划线
  7. 我想成为计算机专业第一,我对计算机专业学生的忠告。
  8. 桥接模式和路由模式区别_联通创维光猫DT541-CSF改桥接模式方法
  9. 华为云文字识别服务产品优势、应用场景、典型案例和未来之路(OCR系列三)
  10. 鸽了!华米科技智能手表部分款将推迟开售 工艺太复杂了
  11. Python_072205_创建一个类方法记录车的品牌mark、颜色color、价格price、速度speed等特征, 并实现增加车辆信息、显示车辆全部信息的功能。
  12. Lenovo ServerGuide 10.4
  13. 计算机安全意识小故事,安全故事精选5篇
  14. Microsoft Edge浏览器不兼容解决办法
  15. 电脑卡顿反应慢怎么办?这几招教给你!
  16. oracle定时频率,Oracle 定时任务 — 定时执行存储过程
  17. 计算机系统文件夹打不开,电脑系统的文件夹打不开可以试下这两个办法
  18. EOS测试链加入流程(代码版本与主网同步)
  19. Java多线程--深入浅出Java多线程
  20. 最高效的七个云原生开发原则

热门文章

  1. apple developer现在注册无法点击(灰色)
  2. Date类型与String类型互相转换
  3. 从包工头到程序猿(十一)知之为知之
  4. 兔子是怎么把狼吃掉的!(经典)-经典寓意文化传承
  5. java基础项目_Java 教程整理:基础、项目全都有
  6. SpringBoot+shiro 实现rememberMe
  7. 劲搞笑!网友模仿演绎改版稻香
  8. Eclipse使用多行注释快捷键代码格式混乱问题
  9. 麦块服务器怎么注册的视频,我的世界麦块服务器怎么注册密码
  10. 徐州工业机器人售后服务部招聘_工业机器人应用于维修