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阶亮度,每一阶都对应着一个亮度:ui

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表示的是最亮spa

#因为咱们在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()

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

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()
相关文章
相关标签/搜索