轉換顏色空間
我們常用的顏色空間轉換就兩種:bgr->gray(cv2.color_bgr2gray)和bgr->hsv(cv2.color_bgr2hsv),用到的函式是:cv2.cvtcolor(imput_image,flag),其中flag為轉換型別。
跟蹤特定顏色的物體例項
我們還需要了解,根據閾值構建掩模函式:mask=cv2.inrange(hsv,lower_blue,upper_blue)。
這樣利用opencv的inrange()函式,製作掩模,再用bitwise_and()函式,提取感興趣區域。
import numpy as np
import cv2
# 滑動條來進行調節閾值
def trackbar():
global thresh_hsv
h = cv2.gettrackbarpos('h', 'image')
s = cv2.gettrackbarpos('s', 'image')
v = cv2.gettrackbarpos('v', 'image')
thresh_hsv = np.array([h, s, v])
# 常用顏色閾值的字典
thresh =
cap = cv2.videocapture(1)
cv2.namedwindow('image')
cv2.resizewindow("image", 640, 480);
cv2.createtrackbar('h', 'image', 0, 255, trackbar)
cv2.createtrackbar('s', 'image', 0, 255, trackbar)
cv2.createtrackbar('v', 'image', 0, 255, trackbar)
while true:
# 獲取每一幀
ret, frame = cap.read()
# 轉換到hsv
hsv = cv2.cvtcolor(frame, cv2.color_bgr2hsv)
# 設定藍色的閾值
lower_blue = np.array([100, 43, 46])
upper_blue = np.array([124, 255, 255])
trackbar()
# 根據閾值構建掩模
mask = cv2.inrange(hsv, thresh_hsv, upper_blue)
# 對原影象和掩模進行位運算
res = cv2.bitwise_and(frame, frame, mask=mask)
# 顯示影象
cv2.imshow('mask', mask)
cv2.imshow('res', res)
k = cv2.waitkey(5) & 0xff
if k == ord('q'):
break
cv2.destroyallwindows()
opencv學習筆記 hsv顏色空間
1.rgb模型。三維座標 原點到白色頂點的中軸線是灰度線,r g b三分量相等,強度可以由三分量的向量表示。用rgb來理解色彩 深淺 明暗變化 色彩變化 三個座標軸rgb最大分量頂點與黃紫青ymc色頂點的連線 深淺變化 rgb頂點和cmy頂點到原點和白色頂點的中軸線的距離 明暗變化 中軸線的點的位置...
OpenCV學習筆記(四) 顏色空間轉換
在opencv中使用cv cvtcolor inputarray src,outputarray dst,int code,int dstcn 0 進行顏色空間的轉換 src和dst分別為輸入影象和輸出影象 code是個掩碼,代表不同的轉換方式 dstcn是輸出影象的通道數,預設0為與輸入影象相同 ...
Opencv學習筆記 三 降低顏色空間
首先認識一下簡單的色彩降低方法 color reduction method 如果使用的是c或c 無符號的char 八字節大小的空間 乙個通道 channel 有256個不同的值 2 8 256 但是如果使用的是grb方案,三個channel的話,顏色的數量就會變為256 256 256,大概是16...