周總結 OpenCV學習 顏色空間轉換

2022-06-25 21:42:13 字數 1919 閱讀 4024

import cv2

​img = cv2.imread('xxa.jpeg')

#轉換為灰度圖   cv2.cvtcolor()用來進行顏色模型轉換,引數1是要轉換的,引數2是轉換模式

img_gray = cv2.cvtcolor(img,cv2.color_bgr2gray)

​#展示兩種

cv2.imshow('img',img)

cv2.imshow('gray',img_gray)

cv2.waitkey(0)

cv2.cvtcolor()用來進行顏色模型轉換,引數1是要轉換的,引數2是轉換模式,color_bgr2gray表示bgr→gray,可用下面的**顯示所有的轉換模式:

flags = [i for i in dir(cv2) if i.startswith('color_')]

print(flags)

hsv是乙個常用於顏色識別的模型,相比bgr更易區分顏色,轉換模式用color_bgr2hsv表示。

經驗之談:

opencv中色調h範圍為[0,179],飽和度s是[0,255],明度v是[0,255]。雖然h的理論數值是0°~360°,但8位影象畫素點的最大值是255,所以opencv中除以了2,某些軟體可能使用不同的尺度表示,所以同其他軟體混用時,記得歸一化。

步驟:從bgr轉換到hsv

提取藍色範圍的物體

只顯示藍色物體

原碼:顏色如何獲取?

其中,bitwise_and()函式暫時不用管,後面會講到。那藍色的hsv值的上下限lower和upper範圍是怎麼得到的呢?其實很簡單,我們先把標準藍色的bgr值用cvtcolor()轉換下:

blue = np.uint8([[[255, 0, 0]]])

hsv_blue = cv2.cvtcolor(blue, cv2.color_bgr2hsv)

print(hsv_blue)  # [[[120 255 255]]]

結果是[120, 255, 255],所以,我們把藍色的範圍調整成了上面**那樣。

import cv2

import numpy as np

​#開啟攝像頭

capture = cv2.videocapture(0)

​#藍色範圍

lower_blue = np.array([100,110,110])

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

#紅色範圍

lower_red = np.array([0,110,110])

upper_red = np.array([10,255,255])

#綠色範圍

lower_green = np.array([50,110,110])

upper_green = np.array([70,255,255])

​while(true):

ret,frame = capture.read()

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

mask = cv2.inrange(hsv, lower_blue, upper_blue) + cv2.inrange(hsv, lower_red, upper_red) +  cv2.inrange(hsv, lower_green, upper_green)

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

cv2.imshow('res',res)

​if cv2.waitkey(1) == ord('q'):

break

《OpenCV》 顏色空間

opencv中匯集了150多種顏色顏色空間的轉變方法,接下來只看最常用的兩種,即bgr gray 和 bgr hsv import cv2 color space轉變函式 cv2.cvtcolor input image,flag 檢視顏色空間flag flags i for i in dir cv...

opencv學習筆記 hsv顏色空間

1.rgb模型。三維座標 原點到白色頂點的中軸線是灰度線,r g b三分量相等,強度可以由三分量的向量表示。用rgb來理解色彩 深淺 明暗變化 色彩變化 三個座標軸rgb最大分量頂點與黃紫青ymc色頂點的連線 深淺變化 rgb頂點和cmy頂點到原點和白色頂點的中軸線的距離 明暗變化 中軸線的點的位置...

Opencv學習筆記 顏色空間轉換

轉換顏色空間 我們常用的顏色空間轉換就兩種 bgr gray cv2.color bgr2gray 和bgr hsv cv2.color bgr2hsv 用到的函式是 cv2.cvtcolor imput image,flag 其中flag為轉換型別。跟蹤特定顏色的物體例項 我們還需要了解,根據閾值...