zoukankan      html  css  js  c++  java
  • OpenCV:图像的颜色空间转换

    导包:

    import numpy as np
    import cv2
    import matplotlib.pyplot as plt
    def show(image):
        plt.imshow(image)
        plt.axis('off')
        plt.show()
    def imread(image):
        image=cv2.imread(image)
        image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
        return image

    RGB当中每一个颜色都有256阶亮度,每一阶都对应着一个亮度:

    image=imread("123.jpg")
    (R,G,B)=cv2.split(image)#这里将通道进行拆分
    print(image.shape)
    print(image.shape[:2])
    zeros=np.zeros(image.shape[:2],dtype='uint8')#这里只取了图像三要素当中的前面部分,毕竟通道拆分之后其颜色空间就仅有一个了
    show(cv2.merge([R,zeros,zeros]))
    show(cv2.merge([zeros,G,zeros]))
    show(cv2.merge([zeros,zeros,B]))#merge是将通道进行合并

    颜色空间的HSV模型。 H代表的是颜色的色调,一共从0—360度。每一度代表这不同的颜色模型 S:代表饱和度,饱和度的取值范围是%0—100,如果饱和度越大,则白色的占有率越小,颜色则越饱满,饱和度越小则白色越明显。 V:代表明度,取值是%0——100,0表示的最黑,100表示的是最亮

    #由于我们在opencv当中的颜色最开始都是采用的是BGR的模式,然后我们之前编写的函数将BGR转换成了RGB的模式,但是在这里我们需要重新将RGB的格式
    #更改为HSV的格式才对
    image=imread("123.jpg")
    hsv=cv2.cvtColor(image,cv2.COLOR_RGB2HSV)
    print(image.shape)
    print(image.shape[:2])
    zeros=np.zeros(image.shape[:2],dtype='uint8')#这里只取了图像三要素当中的前面部分,毕竟通道拆分之后其颜色空间就仅有一个了
    for (name,chan) in zip(('H','S','V'),cv2.split(hsv)):
        cv2.imshow(name,chan)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    下面展示灰度图的显示,这个在我们图像处理当中的是最为常用的:

    image=cv2.imread("123.jpg")#这里用自带的方法读取图片就不会出现图片显示不正确的结果了
    gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
    cv2.imshow('original',image)
    cv2.imshow('gray',gray)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
  • 相关阅读:
    小程序开发-7-访问api数据与ES6在小程序中的应用
    小程序开发-8-流行页面编码与组件的细节知识
    小程序开发-6-组件数据、事件与属性
    当安装mongodb客户端出现了Failed to load list of databases
    对bluebird的理解
    百度地图实现案例
    iScroll实现下拉刷新上拉加载
    nodejs环境变量配置
    检测Python程序本身是否已经在运行
    用Python快速找到出现次数最多的数据
  • 原文地址:https://www.cnblogs.com/geeksongs/p/11132011.html
Copyright © 2011-2022 走看看