資源簡介
通過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
評論
共有 條評論