资源经验分享OpenCV:图像的颜色空间转换

OpenCV:图像的颜色空间转换

2019-11-29 | |  74 |   0

原标题:OpenCV:图像的颜色空间转换

原文来自:博客园      原文链接:https://www.cnblogs.com/geeksongs/p/11132011.html


导包:

import numpy as npimport cv2import matplotlib.pyplot as pltdef 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()


 

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:神经网络的debug

下一篇:OpenCV:图像平滑和图像模糊处理

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...