python如何對物體追蹤
2026-05-04 19:21:48 點(diǎn)擊:894
物體追蹤是何對計算機視覺(jué)領(lǐng)域的一個(gè)重要研究方向,它的物體目標是在視頻序列中跟蹤一個(gè)或多個(gè)運動(dòng)目標的位置,在(zai)Python中??,追蹤我們可以使用OpenCV庫來(lái)實(shí)現物體追蹤,何對以下是物體如何使用Python和OpenCV進(jìn)行物體追蹤的詳細教程。
(圖片來(lái)源網(wǎng)絡(luò ),追蹤侵刪)1、何對安裝OpenCV庫
我們需要安裝OpenCV庫,物體在命令行中輸入以下命令:
pip install opencvpython
2、追蹤導入所需庫
接下來(lái),何對我們需要導入所需的物體庫:
import cv2import numpy as np3、讀取視頻文件
使用cv2.VideoCapture()函數讀取視頻文件:
cap = cv2.VideoCapture('i(╯‵□′)╯nput_video.mp4')4、??追蹤設置追蹤器參數
為了進(jìn)行物體追蹤,何對我們需要設置追蹤(′ω`*)器的物體一些參數,如顏色空間、追蹤大小閾值等,以下是一個(gè)示例:
顏色空間轉換,這里我們將BGR轉換為HSVlower_blue = np.array([90, 70, 70])(╬?益?)upper_blue = np.array([130, 255,ヽ(′ー`)ノ 255])初始化追蹤器tracker = cv2.TrackerCSRT_create()
5、初始化追蹤器并獲??取第一幀
在每一幀中,我們需要初始化追蹤器并獲取追蹤器的狀態(tài):
ret, frame = cap.read((′▽?zhuān)?))hsv = cv2.cvtColor(fram(′-ι_-`)e, cv2.COLOR_BGR2HSV)mask = cv2.inRange(hsv, lower_blue, upper_blue)initBB = cv2.selectROI(frame, False) # 選擇追蹤區域tracker.init(frame, initBB) # 初始化追蹤器
6、循環(huán)處理每一幀
在循環(huán)中,我們需要處理每一幀,更新追蹤器的狀態(tài),并在??圖像上繪制追蹤結果:
while True: ret, frame = cap.read()?? if not ret: break hsv = cv2??.cvtColor(frame, cv2.COLOR_BGR2HSV) mask = cv2.inRange(hsv, lower_blue, upper_blue) result = cv2.bitwi??se_and(frame, frame, mask=mask) (success, box) = tracker.update(frame) # 更新追蹤器狀態(tài) if success: (x, y, w, h) = [int(v) for v in box] cv2.rectangle(frame(′?`*), (x, y), (x + w, y + h), (0, 255, 0), 2) # 繪制追蹤框 el(°o°)se: cvヽ(′?`)ノ2.putText(frame, 'Lost', (100, 80), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2) # 如果追蹤失敗,顯示“Lost”字樣 cv2.imshow('Tracking', result) # 顯示追蹤結果 if cv2.waitKey(1) & 0xFF == ord('q'): # 如果按下“q”鍵(′;д;`),退出循環(huán) break7、釋放資源并關(guān)閉窗口
我們需要釋放資源并關(guān)閉窗口:
cap.release()cv2.destroyAllWindows()將以上代碼保存為一個(gè)Python文件(tracking.py),然后在命令行中運行該文件:
pyth??on tracking.py這將打開(kāi)一個(gè)窗口,顯示物體追蹤的結果,你可以根據需要調整追蹤器的參數,以獲得更好的追蹤效果。





