22.【實戰】車輛統計
from asyncio import CancelledError
import cv2
from cv2 import erode
from cv2 import dilate
import numpy as np
# 濾除的最小矩形的範圍
min_w = 90
min_h = 90
# 定義檢測線的高度,與影片大小有關,影片左上角為( 0 , 0 )
line_high = 550
# 線的偏移量
offset = 7
# 統計車的數量
carno = 0
# 存放有效車輛的陣列
cars = []
# 求車的中心點
def center(x,y,w,h):
x1 = int(w/2)
y1 = int(h/2)
cx = x + x1
cy = y + y1
return cx,cy
cap = cv2.VideoCapture('E:\\video.mp4') # 載入影片
bgsubmog = cv2.createBackgroundSubtractorMOG2()
# 形態學 kernel
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5,5))
while True:
ret, frame = cap.read()
if (ret == True) :
# 灰度化處理
cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# print(frame.shape) # 獲取影片大小的資訊
# exit() # 該命令之後的所有程式都不執行
# 去噪(高斯)
blur = cv2.GaussianBlur(frame, (7,7),5)
# 去背景
mask = bgsubmog.apply(blur)
# 腐蝕
erode = cv2.erode(mask, kernel)
# 膨脹
dilate = cv2.dilate(erode, kernel, iterations= 2)
# 形態學閉運算,去除影像裡面的噪點
close = cv2.morphologyEx(dilate, cv2.MORPH_CLOSE, kernel)
# 查詢輪廓
cnts, h = cv2.findContours(close, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 繪製一條檢測線
cv2.line(frame, (10,line_high),(1200, line_high),(255,255,0),3)
# 對所有輪廓進行遍歷
for (i, c) in enumerate(cnts):
(x,y,w,h) = cv2.boundingRect(c)
# 對車輛的寬高進行判斷,以驗證是否為有效的車輛
isValid = (w >= min_w) and ( h >= min_h)
if( not isValid):
continue
# 到這裡都是有效的車,繪製車的矩形
cv2.rectangle(frame, (x,y),(x+w,y+h),(0,0,255),2)
# 儲存車的中心點
cpoint = center(x,y,w,h) # 計算車的中心點
cars.append(cpoint) #跟單網gendan5.com 將中心點資料儲存到 cars 這個陣列中
for (x,y) in cars : # 遍歷陣列,如果車的中心點落在檢測線的有效區域內,則計數 +1 ,然後去除該陣列
if ((y > line_high - offset) and (y < line_high + offset)):
carno += 1
cars.remove((x,y))
print(carno)
# 顯示統計資訊
cv2.putText(frame, "Cars Count:" + str(carno),(500,60), cv2.FONT_HERSHEY_SIMPLEX, 2, (255, 0, 0), 5)
cv2.imshow('video', frame)
# cv2.imshow('close', close)
key = cv2.waitKey(1)
if(key == 27) : # esc 鍵
break
cap.release()
cv2.destroyAllWindows()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2906797/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於java的企業車輛管理系統的設計與實現Java
- GPS車輛定位系統功能概述
- 解決GAT專案Bug:車裝車飾費用管理中的裝飾費統計(車輛)統計資料不對
- 數百萬輛汽車的最強大腦——雲端車聯網架構實戰架構
- 食品連鎖類門店配送車輛管理系統
- 送貨車輛轉向電氣生態系統
- 車輛資訊查詢 - 高效快捷地獲取車輛相關資訊的利器
- 車輛資訊快速查詢API:輕鬆查詢車牌號對應車輛的詳細資料API
- 樂視超級汽車LeSEE亮相北京車展 車輛自動駕駛已實現自動駕駛
- 工程車輛車載PLC遠端監控智慧運營系統解決方案
- AI開發實踐:關於停車場中車輛識別與跟蹤AI
- 加州機動機動車輛管理局:谷歌無人駕駛車輛已達73輛 壟斷無人駕駛市場谷歌
- 蘋果無人車四個最新專利:手勢控制變道、車輛導流、路況感知及車輛控制蘋果
- 百度地圖api 自定義駕車線路規劃 車輛實時定位地圖API
- 華為車輛碰撞檢測專利公佈,可檢測車輛能否碰撞潛在障礙物
- 自動駕駛車路測法規出臺,車輛需支援遠端實時監控自動駕駛
- GAT-解決車輛基本資訊中,刪除未返場的車輛時,錯誤提示資訊Bug
- 加速車輛資訊保安:贏得車輛完整性和資料隱私性競爭(附下載)
- GAT-解決用車審批中,如果排程車輛是通過Excel匯入的車輛,會有錯誤提示BugExcel
- 加州現神秘旅行車 疑似蘋果收集地圖資料車輛蘋果地圖
- 市場監管總局:截至2023年年底我國已累計實施汽車召回2842次 涉及車輛達1.03億輛
- 道路運輸車輛衛星定位系統JT/T808服務實現和壓測
- 車輛OTA模擬測試解決方案
- 根據關鍵字查詢車輛資訊
- Kafka實戰-實時日誌統計流程Kafka
- 解決GAT輸入車牌號未帶出車輛品牌Bug
- QQ飛車手遊B車選擇攻略 遊戲B車哪輛好?遊戲
- 工作小錦囊系列——如何實現一個車輛預定功能(上)
- 通用計劃明年推出自動駕駛計程車共享服務,可定製化設計車輛自動駕駛
- 無人駕駛之車輛檢測與跟蹤
- php簡單演算法 - 肇事車輛問題PHP演算法
- 一輛車幫你讀懂python函式Python函式
- 車輛動力學模型在模擬測試中的應用實踐模型
- 加碼行車安全,Autoliv與視覺機器公司合作研發車輛駕駛狀態監控系統視覺
- 全新隱形系統將幫助聯網車輛擺脫惡意追蹤
- 設計模式的征途—22.中介者(Mediator)模式設計模式
- 中智車聯:用 TDengine 高效處理車輛運營視覺化管理視覺化
- 華為釋出OceanConnect車聯網平臺,數字化每一輛車