zoukankan      html  css  js  c++  java
  • 色彩空间转换

    import cv2 as cv
    import numpy as np
    
    # 色彩空间转换
    def color_space_demo(image):
        # RGB转换为gray
        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)
    
    # 提取目标特征
    def estract_object_demo():
        #导入视频,这还可以提取视频的帧数么
        capture = cv.VideoCapture('pic/1.mp4')
        while True:
            #ret返回true和false 如果返回的frame帧有值,则ret返回ture
            ret,frame = capture.read()
            if ret == False:
                break
            #转换色彩空间为hsv
            hsv = cv.cvtColor(frame,cv.COLOR_BAYER_BG2BGR)
            # 设置绿色的范围,跟踪视频中的绿色
            lower_hsv = np.array([35,43,46])#设置过滤的颜色的低值
            upeper_hsv = np.array([77,255,255])# 设置过滤颜色的高值
            # 经过滤之后得到的mask是二值图像
            mask = cv.inRange(hsv,lower_hsv,upeper_hsv)#调节图像颜色信息(H)、饱和度(S)、亮度(V)区间,选择白色区域
            cv.imshow('vedio',frame)
            cv.imshow('mask',mask)
            if cv.waitKey(50) & 0xFF == ord('q'):
                break
    
    if __name__ == '__main__':
        '''
        调用color_space_demo()函数  色彩空间转换
        '''
        # src = cv.imread('pic/bizhi.jpg') # 读取到的是RGB图像
        # cv.namedWindow('original',cv.WINDOW_NORMAL)
        # cv.imshow('original',src)
        # color_space_demo(src)
        # cv.waitKey(0)
        # cv.destroyAllWindows()
    
        '''
        调用estract_object_demo()函数   提取目标特征
        '''
        # estract_object_demo() # 我并没有放视频文件
        # cv.waitKey(0)
        # cv.destroyAllWindows()
        '''
        通道分离、合并及修改  
        '''
        src = cv.imread('pic/bizhi.jpg')
        # 下面这句不知道干嘛的
        cv.namedWindow('original',cv.WINDOW_NORMAL)
        cv.imshow('original',src)
        # cv.waitKey(0) # 不加这句打开一闪而过
    
        # # 通道分离,输出三个单通道图片
        b,g,r = cv.split(src) # 将色彩图像分割成3个通道
        cv.imshow('blue',b)
        cv.imshow('green',g)
        cv.imshow('red',r)
    
        # 通道合并
        src = cv.merge([b,g,r])
        cv.imshow('merge',src)
    
        # 修改某个通道的值
        src[:,:,2] = 100
        cv.imshow('single_channel',src)
    
        cv.waitKey(0)
        cv.destroyAllWindows()
    
    
    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    Miller-Rabin素性测试
    ###Canny边缘检测算子
    ###SIFT特征
    建立一个免费的网站
    ###C中的extern-static-const关键词
    ###Git使用问题
    ###Fedora下安装Retext
    ###使用phpmailer自动邮件提醒
    Markdown学习
    有线和无线同时连接,选择其一上网
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15134457.html
Copyright © 2011-2022 走看看