opencv学习(四):色彩空间转换

代码如下:

#导入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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值