代码如下:
#导入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 等常用格式
src = cv.imread("F:/Projects/images/1.jpg")
#创建窗口并显示图像
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()通道合并
参考学习链接:https://blog.csdn.net/u011321546/article/details/79533669