opencv学习第五课(视频存储及色彩空间变换)

一、色彩空间的简介:

         参见博客:https://blog.csdn.net/Solomon1558/article/details/43772147(讲的很详细)

二、色彩空间的的转换(RGB转换为其他色彩空间):

         1. RGB色彩空间转换为HSV色彩空间:(转换方法参见一中提到的博客(三)HSI颜色空间)

    hsv = cv.cvtColor(image, cv.COLOR_BGR2HSV)
    cv.imshow("hsv", hsv)

         2. RGB色彩空间转换为YUV色彩空间:(转换方法参见一中提到的博客(三)HSI颜色空间)

    yuv = cv.cvtColor(image, cv.COLOR_BGR2YUV)
    cv.imshow("yuv", yuv)

         3. RGB色彩空间转换为YCrCb色彩空间:(转换方法参见一中提到的博客(三)HSI颜色空间)

    ycrcb = cv.cvtColor(image, cv.COLOR_BGR2YCrCb)
    cv.imshow("ycrcb", ycrcb)

三、RCB色彩空间的通道分解合并操作:

        1.通道分解(就是讲R,G,B三个通道的颜色值单独拿出来)(图像顺序为R,G,B):

    # 通道分解
    B,G,R = cv.split(src)
    cv.imshow("blue", B)
    cv.imshow("green", G)
    cv.imshow("red", R)

 

         2.通道合成:

    # 通道合并
    src = cv.merge([B,G,R])

四、视屏文件的存储:

        1.直接上代码了,里面有注释:

def videa_demo():
    capture = cv.VideoCapture(0)
    ret, frame = capture.read()

    # 调用cv2方法获取cap的视频帧(帧:每秒多少张图片)
    fps = capture.get(cv.CAP_PROP_FPS)
    print(fps)

    # 获取cap视频流的每帧大小
    size = (int(capture.get(cv.CAP_PROP_FRAME_WIDTH)),
            int(capture.get(cv.CAP_PROP_FRAME_HEIGHT)))
    print(size)
    # 定义编码格式为mpge-4,其他编码参见博客 
    # https://blog.csdn.net/qq_30622831/article/details/82082122

    fourcc = cv.VideoWriter_fourcc(*'XVID')
    print(fourcc)
    # 定义视频文件输入对象
    outVideo = cv.VideoWriter("xiaofeng_1.avi", fourcc, fps, size)

    while(ret):
        frame = cv.flip(frame,1)
        if ret == False:
            break

        hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)

        ''' 
        找出每帧图片中的红色
        '''
        # 红色的HSV值
        law_hsv = np.array([0|156,43,46])
        upper_hsv = np.array([10|180,255,255])
        # 二值化
        mask = cv.inRange(hsv, lowerb=law_hsv, upperb=upper_hsv)


        # 只还原出颜色,做与操作
        dst = cv.bitwise_and(frame,frame,mask=mask)
        cv.imshow("video", frame)
        cv.imshow("mask", dst)
        # 将每帧图片存储
        outVideo.write(dst)
        c = cv.waitKey(10)
        if c == 27:
            break

        ret, frame = capture.read()

        1.HSV色表:

 

好啦,就这些,正在学习的菜鸟,有不对的地方请大鸟支出(哈哈),还有补习勿喷哦

以上图片来源于豆瓣摄影(如有侵犯隐私,请告知,以及时删除,谢谢)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值