代码如下:
#导入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.youkuaiyun.com/u011321546/article/details/79533669
本文详细介绍了使用OpenCV进行图像处理的方法,包括色彩空间的转换、通道的分离与合并,以及如何通过HSV色彩空间过滤特定颜色。通过具体的Python代码示例,展示了如何从视频中提取特定颜色的对象,并解释了HSV色彩空间的基本概念。
:色彩空间转换&spm=1001.2101.3001.5002&articleId=84720562&d=1&t=3&u=b8dfc58c6ef441c0a92703de7336a162)
593

被折叠的 条评论
为什么被折叠?



