Python OpenCV中的圖像處理物體跟蹤效果
Python-OpenCV中的圖像處理-物體跟蹤
物體跟蹤
現(xiàn)在我們知道怎樣將一幅圖像從 BGR 轉(zhuǎn)換到 HSV 了,我們可以利用這一點(diǎn)來提取帶有某個(gè)特定顏色的物體。在 HSV 顏色空間中要比在 BGR 空間中更容易表示一個(gè)特定顏色。在我們的程序中,我們要提取的是一個(gè)藍(lán)色的物體。下面就是就是我們要做的幾步:
• 從視頻中獲取每一幀圖像
• 將圖像轉(zhuǎn)換到 HSV 空間
• 設(shè)置 HSV 閾值到藍(lán)色范圍。
• 獲取藍(lán)色物體,當(dāng)然我們還可以做其他任何我們想做的事,比如:在藍(lán)色
物體周圍畫一個(gè)圈。
import numpy as np import cv2 # cv2.cvtColor(img, flag) # cv2.inRange() # 打印顏色轉(zhuǎn)換flag flags =[ i for i in dir(cv2) if i.startswith('COLOR_')] print(flags) # OpenCV支持超過150種顏色轉(zhuǎn)換的方法,常用:BGR<->GRAY 和 BGR<->HSV # OpenCV的HSV格式中,H(色彩/色度)的取值范圍是[0, 179], S(飽和度)的取值范圍[0, 255], V(亮度)的取值范圍[0, 255] # 不同軟件取值范圍可能不同,使用時(shí)需要做歸一化 # 物體跟蹤,跟蹤一個(gè)藍(lán)色物體,步驟: # 1.從視頻中獲取一幀圖像 # 2.將圖像轉(zhuǎn)換到HSV空間 # 3.設(shè)置HSV閥值到藍(lán)色范圍 # 4.獲取藍(lán)色物體,或其他處理 cap = cv2.VideoCapture(0) while True: # 獲取圖像幀 (ret, frame) = cap.read() # 轉(zhuǎn)換到HSV顏色空間 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # 設(shè)定藍(lán)色的閥值 lower_blue = np.array([110, 50, 50]) upper_blue = np.array([130, 255, 255]) # 根據(jù)閥值構(gòu)建掩膜 mask = cv2.inRange(hsv, lower_blue, upper_blue) mask_blue = cv2.medianBlur(mask, 7) # 中值濾波 # 查找輪廓 contours, hierarchy = cv2.findContours(mask_blue, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) # print(contours, hierarchy) for cnt in contours: (x, y, w, h) = cv2.boundingRect(cnt) cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) font = cv2.FONT_HERSHEY_SIMPLEX cv2.putText(frame, "Blue", (x, y - 5), font, 0.7, (0, 255, 0), 2) # 對(duì)原圖和掩膜進(jìn)行位運(yùn)算 res =cv2.bitwise_and(frame, frame, mask=mask) # 顯示圖像 cv2.imshow('frame', frame) cv2.imshow('mask', mask) cv2.imshow('res', res) k = cv2.waitKey(5)&0xFF if k == 27: break cap.release() cv2.destroyAllWindows()
到此這篇關(guān)于Python OpenCV中的圖像處理物體跟蹤的文章就介紹到這了,更多相關(guān)Python OpenCV物體跟蹤內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python讀寫及備份oracle數(shù)據(jù)庫操作示例
這篇文章主要介紹了Python讀寫及備份oracle數(shù)據(jù)庫操作,結(jié)合實(shí)例形式分析了Python針對(duì)Oracle數(shù)據(jù)庫操作的相關(guān)庫安裝,以及使用cx_Oracle與pandas庫進(jìn)行Oracle數(shù)據(jù)庫的查詢、插入、備份等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05Python報(bào)錯(cuò)no?module?named?torch的幾種原因及解決方案
這篇文章主要給大家介紹了關(guān)于Python報(bào)錯(cuò)no?module?named?torch的幾種原因及解決方案,這是小白時(shí)常犯的錯(cuò),這個(gè)報(bào)錯(cuò)一般說明在你電腦當(dāng)前環(huán)境下沒有安裝torch這個(gè)模塊,但也有其他情況,需要的朋友可以參考下2023-10-10Python自動(dòng)化辦公之清理重復(fù)文件詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Python清理重復(fù)的文件,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2022-05-05Python中低維數(shù)組填充高維數(shù)組的實(shí)現(xiàn)
今天小編就為大家分享一篇Python中低維數(shù)組填充高維數(shù)組的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12Django的用戶模塊與權(quán)限系統(tǒng)的示例代碼
這篇文章主要介紹了Django的用戶模塊與權(quán)限系統(tǒng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07pandas如何實(shí)現(xiàn)兩個(gè)dataframe相減
這篇文章主要介紹了pandas如何實(shí)現(xiàn)兩個(gè)dataframe相減方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02