open CV顏色空間轉換

2021-10-05 16:44:35 字數 1516 閱讀 5329

使用工具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

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

#設定藍色的閥值

lower_blue = np.array(

[110,50

,50])

upper_blue = np.array(

[130

,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)

k = cv2.waitkey(5)

&0xff

if k ==27:

break

#關閉視窗

cv2.destroyallwindows(

)

追蹤物體輪廓,以後可以找物體中心,然後跟蹤物體,可以在攝像頭前揮揮手就可以畫圖等一些有趣的事

在終端輸入以下命令:

import cv2

import numpy as np

⚠️//不能用 [0,255,0] 而用 [[[0,255,0]]]

//的三層括號應分別對應於 cvarray cvmat iplimage

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

hsv_green=cv2.cvtcolor(green,cv2.color_bgr2hsv)

print (hsv_green )

[[[60 255 255]]]

現在你可以分別用 [h-100,100,100] 和 [h+100,255,255] 做上下閥值。但是後別忘了調節 hsv 的範圍。

一般對顏色空間的影象進行有效處理都是在hsv空間進行的,然後對於基本色中對應的hsv分量需要給定乙個嚴格的範圍,下面是通過實驗計算的模糊範圍(準確的範圍在網上都沒有給出)。

h: 0 — 180

s: 0 — 255

v: 0 — 255

此處把部分紅色歸為紫色範圍:

opencv顏色空間轉換

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

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...

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

轉換顏色空間 最常用的兩種顏色空間方法 bgr gray和bgr hsv。cv2.cvtcolor input image,flag input image 轉換的影象 flag 轉換型別 對於 bgr gray 的轉換,我們要使用的 flag 就是cv2.color bgr2gray。對於 bgr...