opencv學習(四) 色彩空間轉換

2021-09-02 11:05:58 字數 1973 閱讀 1002

**如下:

#匯入cv模組

'''h:0-180 s:0-255 v:0-255

'''import cv2 as cv

import numpy as np

def extrace_object_demo():

capture=cv.videocapture("f:/projects/images/video_demo.wmv")

while(true):

ret,frame=capture.read()

if ret==false:

break

hsv = cv.cvtcolor(frame, cv.color_bgr2hsv) # rgb轉換為hsv

lower_hsv=np.array([100,43,46])

upper_hsv=np.array([124,255,255])

mask=cv.inrange(hsv,lowerb=lower_hsv,upperb=upper_hsv)

cv.imshow("video",frame)

cv.imshow("mask", mask)

c=cv.waitkey(40)

if c==27: #27相當於exit

break

def color_space_demo(image):

gray=cv.cvtcolor(image,cv.color_bgr2gray)#rgb轉換為gray

cv.imshow("gray",gray)

hsv=cv.cvtcolor(image,cv.color_bgr2hsv)#rgb轉換為hsv

cv.imshow("hsv",hsv)

yuv=cv.cvtcolor(image,cv.color_bgr2yuv)#rgb轉換為yuv

cv.imshow("hsv",yuv)

ycrcb=cv.cvtcolor(image,cv.color_rgb2ycrcb)#rgb轉換為ycrcb

cv.imshow("ycrcb",ycrcb)

# 讀取影象,支援 bmp、jpg、png、tiff 等常用格式

#建立視窗並顯示影象

cv.namedwindow("input image",cv.window_autosize)

cv.imshow("input image",src) #顯示原圖

#color_space_demo(src) #改變後的

#extrace_object_demo()

b,g,r=cv.split(src) #通道分離

cv.imshow("blue",b)

cv.imshow("green",g)

cv.imshow("red",r)

src[:,:,2]=0 #最後乙個通道改為0

cv.imshow("channel images",src)

src[:,:,2]=0

src=cv.merge([b,g,r]) #聚集起來

cv.imshow("merge image",src)

cv.waitkey(0)

#釋放視窗

cv.destroyallwindows()

print("hi,python!")

hsv色彩空間說明:

h:0-180  s: 0-255 v: 0-255

可以通過下表對應顏色的數值過濾其他顏色

hsv顏色對應rgb的分量範圍:

通道分離、合併,修改某一通道

涉及函式:

split() 將彩色影象分割成3個通道

merge()通道合併

7 色彩空間轉換

常見的色彩空間 色彩空間轉換 import cv2 as cv def color space demo img gray cv.cvtcolor img,cv.color bgr2gray cv.imshow gray gray hsv cv.cvtcolor img,cv.color bgr2h...

OpenCV 04色彩空間

色彩空間 它的用途是在某些標準下用通常可接受的方式對彩色加以說明。本質上,彩色模型是座標系統和子空間的闡述。位於系統的每種顏色都有單個點表示。關於hsv的問題 在hsv中,h實際取值範圍是從0到360的,但是在opencv中h的取值範圍是從0到180 原因 因為v和s都是0到255,當我們用uint...

opencv自學筆記 02 色彩空間

rgb轉化灰度圖,hsv,動態捕獲特定顏色的物體 import cv2 as cv import numpy as np 顏色空間 def color space demo image gray cv.cvtcolor image,cv.color bgr2gray yuv cv.cvtcolor ...