• 大小: 10.07MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-05
  • 语言: 其他
  • 标签: opencv  车辆识别  

资源简介

通过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.xml

     文件      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


评论

共有 条评论