Opencv python之车辆识别项目(附代码)

article/2025/9/28 16:10:09

文章目录

  • 图片车辆识别
  • 视频车辆识别

图片车辆识别

根据文章搭建好环境后开始进行做项目link

import sys
import cv2
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon, QPalette, QPixmap, QBrush, QRegExpValidatorclass mainWin(QWidget):def __init__(self):"""构造函数"""super().__init__()self.initUI()self.openBtn.clicked.connect(self.openFile)  # 信号和槽self.grayBtn.clicked.connect(self.imgGray)  # 信号和槽self.carCheckBtn.clicked.connect(self.carCheck)def initUI(self):# 设置窗口得大小self.setFixedSize(860, 600)# 图标和背景self.setWindowTitle("车辆检测")self.setWindowIcon(QIcon("img/icon.jpg"))  # 图标# 标签self.leftLab = QLabel("原图:", self)self.leftLab.setGeometry(10, 50, 400, 400)  # 设置绝对位置self.leftLab.setStyleSheet("background:white")self.newLab = QLabel("新图:", self)self.newLab.setGeometry(420, 50, 400, 400)  # 设置绝对位置self.newLab.setStyleSheet("background-color:white")# 按钮self.openBtn = QPushButton(" 打开文件", self)self.openBtn.setGeometry(10, 10, 80, 30)self.grayBtn = QPushButton(" 灰度处理", self)self.grayBtn.setGeometry(100, 10, 80, 30)self.carCheckBtn = QPushButton(" 视频检测", self)self.carCheckBtn.setGeometry(200, 10, 80, 30)

打开文件方法

 def openFile(self):"""打开文件的处理函数:return;:return:"""print("打开图片")self.img,imgType = QFileDialog.getOpenFileName(self, "打开图片", "", "*.jpg;;*.png;;ALL FILES(*)")print(self.img)#jpg = QPixmap(self.img)self.leftLab.setPixmap(QPixmap(self.img))self.leftLab.setScaledContents(True)

图像变灰度并车辆识别方法

    def imgGray(self):print("灰度")img1 = cv2.imread(self.img)#1. 灰度化处理img_gray = cv2.cvtColor(img1, cv2.COLOR_RGB2GRAY)# BGR = cv2.cvtColor(module,cv2.COLOR_BGR2RGB)# 转化为RGB格式# ret,thresh = cv2.threshold(gray, 200, 255, cv2.THRESH_BINARY)#二值化#2. 加载级联分类器car_detector = cv2.CascadeClassifier("./cars.xml")"""image--图片像素数据scaleFactor=None,缩放比例minNeighbors=None,22就是3flags =None, 标志位 用什么来进行检测minSize=None,最小的尺寸maxSize=None,最大的尺寸self, image, scaleFactor=None, minNeighbors=None, flags=None, minSize=None, maxSize=None"""#3. 检测车辆  多尺度检测,得到车辆的坐标定位cars = car_detector.detectMultiScale(img_gray, 1.05, 2, cv2.CASCADE_SCALE_IMAGE, (20,20), (100,100))print(cars)#(274  46  28  28) --(x,y,w,h)#4. 在车的定位上画图for(x, y, w, h) in cars:print(x, y, w, h)#img, pt1, pt2, color, thickness = None, lineType = None, shift = Nonecv2.rectangle(img1,(x,y), (x+w, y+h), (255, 255, 255), 1, cv2.LINE_AA)# 保存图片img_gray_name = "3.png"  # 文件名cv2.imwrite(img_gray_name, img1)  # 保存# 显示再控件上面self.newLab.setPixmap(QPixmap(img_gray_name))self.newLab.setScaledContents(True)

视频车辆识别

视频打开且识别方法

    def carCheck(self):print("车流检测")# parent: QWidget = None, caption: str = '', directory: str = '', filter:#1. 选择视频video, videoType = QFileDialog.getOpenFileName(self, "打开视频", "", "*.mp4")print(video, videoType)# video --打开的视频filename#2. 读取加载视频cap = cv2.VideoCapture(video)#3.读取一帧图片while True:status,img = cap.read()if status:# 灰度gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)# 2. 加载级联分类器car_detector = cv2.CascadeClassifier("./cars.xml")cars = car_detector.detectMultiScale(gray, 1.2, 2, cv2.CASCADE_SCALE_IMAGE, (25, 25), (200, 200))# 画框框for (x, y, w, h) in cars:print(x, y, w, h)# img, pt1, pt2, color, thickness = None, lineType = None, shift = Nonecv2.rectangle(img, (x, y), (x + w, y + h), (255, 255, 255), 1, cv2.LINE_AA)print("实时车流量", len(cars))text = 'car number: '+str(len(cars))# 添加文字cv2.putText(img, text, (350, 100), cv2.FONT_HERSHEY_SIMPLEX, 1.2, (255, 255, 0), 2)cv2.imshow("opencv", img)key = cv2.waitKey(10)  # 延时并且监听按键if key == 27:breakelse:break# 释放资源cap.release()cv2.destroyAllWindows()

主函数

if __name__ == "__main__":app = QApplication(sys.argv)  #创建一个应用程序win = mainWin()  #实例化对象win.show()  #显示窗口sys.exit(app.exec_())

图像识别效果(想要效果好些 需要自己去琢磨调参数)
在这里插入图片描述
视频车辆识别效果

在这里插入图片描述

文章内容都为个人笔记,侵权必究!!!
源码下载:link


http://chatgpt.dhexx.cn/article/qLtN72kJ.shtml

相关文章

java opencv 之车辆识别

上篇写了人脸识别,因为人脸识别的训练模型 haarcascade_frontalface_alt.xml 之类的官方已经训练好了可以直接用,但是我们要识别车辆或者其它物体就得训练模型,好在废了一点力 找到了一位大神训练好的模型 核心代码 几乎和人脸识别的差不多 s…

如何开发一个车牌识别,车牌识别系统,车辆识别系统毕业设计毕设作品

开发准备 第1步:准备好百度智能云的账号 第2步:在百度智能云领取对应AI开发的免费资源包 第3步:创建对应的应用,然后获取对应的开发信息,主要是下面几个 AppID:应用列表中 API Key:应用列表…

车辆识别

一:简介 车牌识别系统(Vehicle License Plate Recognition,VLPR) 是指能够检测到受监控路面的车辆并自动提取车辆牌照信息(含汉字字符、英文字母、阿拉伯数字及号牌颜色)进行处理的技术。车牌识别是现代智能交通系统中的重要组成…

【OpenCV】 车辆识别 运动目标检测

目录 一:车辆识别 运动目标检测 二:车辆识别实现 超详细步骤解析 步骤一:灰度化处理 步骤二:帧差处理 步骤三:二值化处理 步骤四:图像降噪 4-1 腐蚀处理 目的 去除白色噪点 4-2 膨胀处理 目的 把白…

【OpenCV】车辆识别 C++ OpenCV 原理介绍 + 案例实现

目录 前言 一、图像处理 💻二值化处理 💻膨胀、腐蚀 💻开运算、闭运算 二、案例实现 Step1:灰度处理 Step2:对视频进行帧差处理 Step3:二值化处理 Step4:腐蚀处理 Step5&#xff1a…

【OpenCV】车辆识别 目标检测 级联分类器 C++ 案例实现

目录 前言 一、目标检测技术 二、样本采集工作原理 三、创建自己的级联分类器 Step1:准备好样本图像 Step2:环境配置(OpenCV win10) Step3:设置路径 Step4:实现样本数据采集 Step5:实…

使用华为modelarts进行车辆识别

要求:从图像(图3)中检测并识别出车辆。车辆检测和识别算法可采用深度学习、BP网络或特征匹配等方法,方法不限。 图5-1待识别图像 原理:ModelArts是面向AI开发者的一站式开发平台,支持自动学习的功能&#…

车辆识别(特征提取+svm分类器)

以下为udacity的SDCND的一个项目 ps:这里使用的是用opencv进行特征提取+svm分类器的方法实现物体检测,是在深度学习流行前比较经典的实现方法 项目描述: 使用openCV提取图片特征,训练svm分类器,分类车辆与非车辆。用训练好的模型识别汽车前置摄像头记录视频中的车辆。 …

深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集+训练代码)

深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集训练代码) 目录 深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集训练代码) 1. 前言 2. 车辆检测数据集说明 (1)车辆检测数据集 (2)自定…

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

写在开头,接触opencv也有很长一段时间了,中间还接触了halcon。但都是基于C实现,发现如果有什么idea,还是使用python可以快速实现。基于C版本的后期会有更新。 首先,这个案例是一个老生常谈的问题-车辆识别。首先我们要…

MySQL清空单表数据

一:问题背景 1. 问题描述 之前测试1千万数据插入MySQL数据库里面,分别使用单线程的方式和线程池的方式对比测试,查看效果,但是插入了1千万数据后,由于是测试数据,现在不能在新建一张表浪费存储空间,还是之前的表,要清空原来的数据.有哪些方式可用&#x…

mysql清空表数据_mysql数据库之如何清空表中数据

本篇文章主要讲述的是在数据库中使用清空命令,具有一定学习价值,有需要的朋友可以了解一下,希望能够对你有所帮助。 在做数据迁移,数据清洗或者写web项目时要将数据替换更新,那么有时要将表做清空处理 常用的清空数据表…

mysql删除表中所有数据_MySQL删除或清空表中数据的方法

原标题:MySQL删除或清空表中数据的方法 要想把MySQL中的数据删除或清空,可以通过两种方法来实现:DELETE语句和TRUNCATE TABLE语句。 DELETE语句可以将表中所有记录都删除,也可以指定WHERE子句,对要删除的记录进行选择;…

清空MySQL单库下所有表数据 || 删除MySQL单库下所有表

一、清空MySQL单库下所有表数据 -- 清空MySQL单库下所有表数据 SELECT CONCAT(truncate table ,TABLE_NAME,;) AS PLEASE_EXEC_ALL_SQL FROMinformation_schema.TABLES WHERETABLE_SCHEMA datagateway_std;如下图,然后复制所有查询结果,依次执行清表命…

Mysql如何清空数据库中所有的表数据

“db”是数据库名称 SELECT CONCAT(truncate table ,TABLE_NAME,;) AS a FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA db ; 全部复制出来运行即可 有外键约束的话,我们可以使用 SET FOREIGN_KEY_CHECKS0; 来禁用外键约束,执行完我们的语句之…

90个外国英文网站强力推荐!!!

2019独角兽企业重金招聘Python工程师标准>>> http://www.mtime.com/group/lazy/discussion/163374/ 转载于:https://my.oschina.net/crazyinsomnia/blog/2739

常用的英文文献网站

最常用的英文文献网站当然是:sci-hub。 除此之外,推荐几个比较常用的英文文献网站: Elsevier ScienceDirect 数据库试用: http://www.sciencedirect.com 科学引文索引数据库(SCI)学术资源: h…

十大实用网站推荐(1)

Iiconfont矢量图标库http://www.iconfont.cn/设计师必备网站,成千上万个矢量图标,真正的“图标库”: 稿定设计https://www.gaoding.com/有点懒?抠图太麻烦?做设计有点烦?来这个网站看看吧,懒人…

英语网站学习

一说到英语学习网站,脑子里肯定就是啥BBC,TED,华尔街日报啊,但如果你是英语小白,你一定看的懂吗?太多的专业词汇,看都看不懂,还怎么帮助你快速提升英语?英语网站是学习的…

强烈推荐这 15 个网站!

作者 | ithuangqing 来源 | 编码之外(ID:ithuangqing) 电子书?纸质书?我喜欢免费 不得不说,纸质书看起来是最有感觉的,可是纸质书也有非常不好的两点: 搬家的时候真的头大贵&#x…