pythonopencv项目_Opencv python之车辆识别项目
图片车辆识别
根据文章搭建好环境后开始进行做项目linkimport sys
import cv2
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon, QPalette, QPixmap, QBrush, QRegExpValidator
class 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,2 写2就是3
flags =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 = None
cv2.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 = None
cv2.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:
break
else:
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
主函数if __name__ == "__main__":
app = QApplication(sys.argv) #创建一个应用程序
win = mainWin() #实例化对象
win.show() #显示窗口
sys.exit(app.exec_())
pythonopencv项目_Opencv python之车辆识别项目相关推荐
- python车辆识别硬件_Opencv python之车辆识别项目
图片车辆识别 根据文章搭建好环境后开始进行做项目linkimport sys import cv2 from PyQt5.QtGui import * from PyQt5.QtWidgets imp ...
- 【项目三、车牌检测+识别项目】四、使用LPRNet进行车牌识别
目录 前言 一.数据集 二.训练 三.验证 四.测试结果 五.推理代码 Reference 前言 马上要找工作了,想总结下自己做过的几个小项目. 之前已经总结过了我做的第一个项目:xxx病虫害检测项目 ...
- 【项目三、车牌检测+识别项目】一、CCPD车牌数据集转为YOLOv5格式和LPRNet格式
目录 前言 一.CCPD数据集介绍 二.CCPD数据集下载 三.划分训练集.验证集和测试集 四.车牌检测数据集制作 五.车牌识别数据集制作 六.我的车牌检测+识别数据集 Reference 前言 马上 ...
- 【项目三、车牌检测+识别项目】二、使用YOLOV5进行车牌检测
目录 前言 一.数据集 二.ccpd.yaml 三.训练 四.验证 五.测试结果 Reference 前言 马上要找工作了,想总结下自己做过的几个小项目. 之前已经总结过了我做的第一个项目:xxx病虫 ...
- opencv 训练人脸对比_【项目案例python与人脸识别】基于OpenCV开源计算机视觉库的人脸识别之python实现...
" 本项目是一个基于OpenCV开源库使用python语言程序实现人脸检测的项目,该项目将从[项目基础知识](即人脸识别的基本原理).[项目实践](人脸识别所需要的具体步骤及其python程 ...
- python能做什么项目好-python能做什么项目
大家在学完python基础之后,突然迷茫起来了,这时就需要一些项目练练手,增加自己的经验,同时找到自己的不足. Python3 实现火车票查询工具(推荐学习:Python视频教程) 使用 Python ...
- python识别图像中的物体_OpenCV+Python 指定物体识别
本文介绍一种基于HoG+Pyramids+Sliding Windows+SVM的物体识别方法 基本流程 (1)确定最小检测物体,对原图img缩放,缩放比例为(滑动窗大小/最小物体大小). (2)缩放 ...
- 深度学习项目实战——手写数字识别项目
摘要 本文将介绍的有关于的paddle的实战的相关的问题,并分析相关的代码的阅读和解释.并扩展有关于的python的有关的语言.介绍了深度学习步骤: 1. 数据处理:读取数据 和 预处理操作 2. 模 ...
- 深度学习项目实战——基于PaddlePaddle昆虫识别项目
摘要 本文主要介绍的是的有关于的百度飞桨的目标的检测的算法的实战案例.通过使用的百度飞桨来实现的对自己目标进行识别的.后面本人将继续深入原理来对的目标的检测的原理和算法和系统的来实现讲解.基于飞桨(P ...
- 项目总结二:人脸识别项目(Face Recognition for the Happy House)
一.人脸验证问题(face verification)与人脸识别问题(face recognition) 1.人脸验证问题(face verification): 输入 ...
最新文章
- FuncT,TResult的使用方法(转载)
- python画曲线-Python绘制各种简单优美曲线
- 深入分析Java Web技术内幕(二)
- 外包物料成本核算时的供应商确定
- python jupyter安装_python之jupyter的安装
- 解决linux下无线网卡被物理禁用问题
- 这 10 道 Java 测试题,据说阿里 P7 的正确率只有 50%
- c#使用Stopwatch来计算时间间隔
- 企业库(V4.1)入门学习手记
- 7-3 主从复制配置
- WSL1升级到WSL2
- 《opencv学习笔记》-- 感兴趣区域(ROI)、图像混合
- c语言句子后移两位加密,用C语言实现对输入的引英文句子进行加密
- 家用路由器设置虚拟服务器,家用路由器设置虚拟服务器
- Python爬虫——用正则表达式爬取小说内容
- ARM与Intel芯片性能不严谨比较
- 2566420-12-8,TCO-PEG3-alcohol羟基允许发生额外反应以进一步衍生化合物
- 云南小学、初中、高中标准教学实验室设备配置清单整体解决方案
- python编译环境 eclipse_Eclipse python 开发环境配置
- 用手动Ghost重装系统(gho镜像)
热门文章
- 一洽客服客户试用转化率100%
- 2020-2023保时捷Taycan维修手册电路图技术培训手册用户手册电动汽车技术资料
- 在Ubuntu 16.04 64bit上安装谷歌地球Google Earth免费版
- 看完这篇 Session、Cookie、Token,和面试官扯皮就没问题了
- 高中数学建模优秀论文_高中数学建模优秀论文大纲格式 高中数学建模优秀论文大纲怎么写...
- php写猴子搬香蕉问题,世界500强企业面试题:猴子吃香蕉
- vue使用contenteditable 实现光标处插入自定义图片
- python的画图工具,Python画图工具matplotlib的安装
- PC Logo入门指南
- 太神了-图片可以转换成Word文档了