OpenCV 顏色空間轉換(Python實現)

2021-09-23 10:45:48 字數 1480 閱讀 6715

轉換顏色空間

最常用的兩種顏色空間方法 :bgr–graybgr–hsv

cv2.cvtcolor(input_image, flag)
input_image 轉換的影象

flag 轉換型別

對於 bgr-gray 的轉換,我們要使用的 flag 就是cv2.color_bgr2gray。

對於 bgr-hsv 的轉換,我們用的 flag 就是cv2.color_bgr2hsv。

在 opencv 的 hsv 格式中, h(色彩/色度)的取值範圍是 [0, 179],s(飽和度)的取值範圍 [0, 255], v(亮度)的取值範圍 [0, 255]。但是不同的軟體使用的值可能不同。所以當你需要拿 opencv 的 hsv 值與其他軟體的 hsv 值進行對比時,一定要記得歸一化。

物體跟蹤

import cv2

import numpy as np

cap = cv2.videocapture(0)

while(true):

ret, frame = cap.read()#獲取影象

# 轉換到 hsv

hsv=cv2.cvtcolor(frame,cv2.color_bgr2hsv)

# 設定橙色的閾值

lower_blue=np.array([0,50,50])

upper_blue=np.array([20,255,255])

# 根據閾值構建掩模

mask=cv2.inrange(hsv,lower_blue,upper_blue)

# 對原影象和掩模進行位運算

res=cv2.bitwise_and(frame,frame,mask=mask)

# 顯示影象

cv2.imshow('frame',frame)

cv2.imshow('mask',mask)

cv2.imshow('res',res)

if cv2.waitkey(1) & 0xff == ord('q'):#監測到鍵盤輸入q關閉

break

cap.release()#釋放攝像頭

cv2.destroyallwindows()#關閉視窗

找到跟蹤物件的hsv值

我們要找到綠色的 hsv 值,我們只需在終端輸入以下命令:

green=np.uint8([[[0,255,0]]])	#獲取綠色

hsv_green=cv2.cvtcolor(green,cv2.color_bgr2hsv) #轉換

print (hsv_green)

[[[ 60 255 255]]]

opencv顏色空間轉換

使用工具python3.5 使用包cv2,numpy 涉及函式cv2.cvtcolor cv2.inrange 在 opencv 中有 超過150 種進行顏色空間轉換的方法。但是你以後就會發現我們經常用到的也就兩種 bgr gray 和 bgr hsv。我們用到的函式是cv2.cvtcolor in...

open CV顏色空間轉換

使用工具python3.5 使用包cv2,numpy 涉及函式cv2.cvtcolor cv2.inrange import cv2 import numpy as np cap cv2.videocapture 0 while 1 獲取每一幀 ret,frame cap.read 轉換到hsv h...

opencv 轉換顏色空間 目標跟蹤

轉換顏色空間 import cv2 import numpy as np flags i for i in dir cv2 if i.startswith color print flags cap cv2.videocapture 0 while 1 ret,frame cap.read fram...