Opencv學習筆記 顏色空間轉換

2021-09-25 14:25:18 字數 1508 閱讀 3176

轉換顏色空間

我們常用的顏色空間轉換就兩種: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...