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)
# 對原圖和掩膜進(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python讀寫及備份oracle數(shù)據(jù)庫操作示例
這篇文章主要介紹了Python讀寫及備份oracle數(shù)據(jù)庫操作,結(jié)合實(shí)例形式分析了Python針對Oracle數(shù)據(jù)庫操作的相關(guān)庫安裝,以及使用cx_Oracle與pandas庫進(jìn)行Oracle數(shù)據(jù)庫的查詢、插入、備份等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05
Python報(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-10
Python自動(dòng)化辦公之清理重復(fù)文件詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Python清理重復(fù)的文件,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2022-05-05
Python中低維數(shù)組填充高維數(shù)組的實(shí)現(xiàn)
今天小編就為大家分享一篇Python中低維數(shù)組填充高維數(shù)組的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Django的用戶模塊與權(quán)限系統(tǒng)的示例代碼
這篇文章主要介紹了Django的用戶模塊與權(quán)限系統(tǒng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
pandas如何實(shí)現(xiàn)兩個(gè)dataframe相減
這篇文章主要介紹了pandas如何實(shí)現(xiàn)兩個(gè)dataframe相減方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02

