资源简介
通过opencv对图像以及视频进行车辆识别:先加载图像,再把图像进行灰度化处理,再通过级联分类器xml文件,对图像进行识别,得到位置及大小,再用所得数据把车辆给框出来
代码片段和文件信息
# -*- coding: utf-8 -*-#
# PROJECT_NAME: opencv_vehicle_pro
# Name: mainWin
# Author: XQS
# Date: 2020/8/24
import 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 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:
statusimg = 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()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10316681 2020-08-28 15:09 车辆识别项目\carMove.mp4
文件 118803 2020-08-25 17:06 车辆识别项目\cars.xm
文件 42802 2020-08-21 16:23 车辆识别项目\img\background.jpg
文件 15335 2020-08-21 16:09 车辆识别项目\img\icon.jpg
文件 51523 2020-08-26 17:02 车辆识别项目\img\vehicle.jpg
文件 27614 2020-08-26 17:08 车辆识别项目\img\vehicle2.jpg
文件 85785 2020-08-26 17:13 车辆识别项目\img\vehicle3.jpg
文件 5488 2020-08-31 12:19 车辆识别项目\vehicle_win.py
文件 2243 2020-08-25 15:30 车辆识别项目\__pycache__\mainWin.cpython-37.pyc
目录 0 2020-08-31 15:32 车辆识别项目\img
目录 0 2020-08-31 15:32 车辆识别项目\__pycache__
目录 0 2020-08-31 15:32 车辆识别项目
----------- --------- ---------- ----- ----
10666274 12
相关资源
- 张正友相机标定Opencv实现完整程序+棋
- OpenCV计算机视觉编程攻略 (第2版)
- opencv视频行人检测1HOG+SVM
- OpenCV手势动作识别--石头剪刀布
- 图像匹配 目标轮廓匹配 基于OPENCV库
- opencv视觉导航小车寻迹
- 对图像的一维高斯滤波操作
- opencv420_boostdesc_bgm_vgg_generated.zip
- VS2010 Opencv-2.4.3的配置
- 基于opencv的三维重建代码
-
Robust Real-time ob
ject Detection 论文 整理 - opencv2.1+VS2008实现维纳滤波复原
- opencv3.2交叉编译出来的库文件
- 基于opencv人脸识别的封装
- xfeatures2d.rar
- 基于OpenCV的视频车牌识别
- opencv 普通相机畸变标定校正
- 特征点匹配Demo
- OpenCV2.2 64位
- 基于SVM的手写数字识别Opencv+图像集
- 利用OpenCV(2.4.13)的SURF/SIFT + RANSAC
- asm算法 opencv实现
- OpenCV2.4.9_基于背景差分法的视频目标
- 基于OpenCV的疲劳驾驶检测系统的设计
- OpenCV三维重构代码
- 双目测距-opencv
- opencv人脸/人眼/人体识别分类器
- opencv4.0结合TensorFlow实现mask rcnn的目标
- opencv+qt通过CGI读取网络摄像头工程
- 安装opencv342缺失的boostdesc_bgm.i系列文
评论
共有 条评论