0
点赞
收藏
分享

微信扫一扫

Python-OpenCV图像处理-03-色彩空间

年夜雪 2022-07-18 阅读 57


import cv2 as cv
import numpy as np

图像取反:

def inverse(image):
dst =cv.bitwise_not(image)
cv.imshow("inverse image",dst)

比较运行时间:

t1 =cv.getTickCount()
inverse(src)
t2 =cv.getTickCount()
time =(t2-t1)/cv.getTickFrequency()*1000
print("time : %s ms"%time)

色彩空间: 

​​色彩空间​​

三维的BGR色彩空间

Python-OpenCV图像处理-03-色彩空间_赋值

比较常用的是HSV与RGB YUV与RGB色彩空间转换

Python-OpenCV图像处理-03-色彩空间_色彩空间_02

色彩空间的转换:

def color_space_demo(image):
gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
cv.imshow("gray",gray)
hsv =cv.cvtColor(image,cv.COLOR_BGR2HSV)
cv.imshow("hsv",hsv)
yuv =cv.cvtColor(image,cv.COLOR_BGR2YUV)
cv.imshow("yuv",yuv)
Ycrcb =cv.cvtColor(image,cv.COLOR_BGR2YCrCb)
cv.imshow("Ycrcb",Ycrcb)

 

Python-OpenCV图像处理-03-色彩空间_色彩空间_03

对特定颜色的捕捉:

这里是打开一个视频对视频中的某种颜色进行捕捉颜色

使用inRange()函数

def extrace_object():
capture =cv.VideoCapture("C:\\Users\\william\\Pictures\\shang.mp4")
while(True):
ret,frame =capture.read()
if ret == False:
break
hsv =cv.cvtColor(frame,cv.COLOR_BGR2HSV)
lower_hsv =np.array([37,43,46])
upper_hsv=np.array([77,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:
break

也适用图像:

lower_hsv =np.array([37,43,46])
upper_hsv=np.array([77,255,255])
mask1=cv.inRange(src,lowerb=lower_hsv,upperb=upper_hsv)
cv.imshow("mask1",mask1)

演示: 

 

Python-OpenCV图像处理-03-色彩空间_色彩空间_04

通道的分离:

src =cv.imread("C:\\Users\\william\\Pictures\\go.jpg")
cv.imshow("input image",src)
#通道的分离
b,g,r =cv.split(src)
cv.imshow("blue",b)
cv.imshow("green",g)
cv.imshow("red",r)

对某一通道进行赋值:

src[:,:, 2] = 0
cv.imshow("change0",src)

通道的合并: 

src=cv.merge([b,g,r])
cv.imshow("change",src)

 

举报

相关推荐

0 条评论