• 色彩空间转换


    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()
    
    
    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    3500常用汉字与标点符号(已排除不支持GB2312的)
    http报头正文开头会有一个整数的问题
    Arduino "Card failed, or not present"(即找不到SD卡)错误解决方案
    Arduino运行时突然[卡死在某一行/立即重启/串口输出乱码/程序执行不正常]的可能原因
    C++编程常见错误
    本地Apache服务器访问时502 Server dropped connection 错误解决方法
    Borůvka (Sollin) 算法求 MST 最小生成树
    搜索算法总结:迭代加深、双向、启发式
    三分法
    状压 DP:[USACO06NOV] Corn Fields,[USACO13NOV] No Change
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15134457.html
Copyright © 2020-2023  润新知