RGB图像转三通道灰度图像

RGB彩色图像由R、G、B三个通道组成,可以转成三幅灰度图像。

RGB彩色图像

色彩模式是数字世界中表示颜色的一种算法。在数字世界中,为了表示各种颜色,人们通常将颜色划分为若干分量。由于成色原理的不同,决定了显示器、投影仪、扫描仪这类靠色光直接合成颜色的颜色设备和打印机、印刷机这类靠使用颜料的印刷设备在生成颜色方式上的区别。

常见的色彩模式如下:

RGB模式:适用于显示器、投影仪、扫描仪、数码相机等。

CMYK模式:适用于打印机、印刷机等。

假设RGB彩色图像P的大小为H ×W, W和H分别为图像的宽度和高度。每个像素的值由R、G、B(分别为红、绿、蓝)颜色分量组成。这样,彩色图像就可以根据其颜色通道转化为三幅灰度图像,每种颜色(R, G, B)的矩阵大小为H ×W。

实验结果

RGB图像转三通道灰度图像_第1张图片

实验代码

import cv2
import matplotlib.pyplot as plt


'''
彩色图像转化为RGB三幅灰度图像
'''
def main():
  img='./lena.png'
  im=cv2.imread(img)
  B,G,R=cv2.split(im)

  #结果展示
  plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文乱码
  #子图1,原始图像
  plt.subplot(141)
  #plt默认使用三通道显示图像,所以需要制定cmap参数为gray
  #imshow()对图像进行处理,画出图像,show()进行图像显示
  #opencv的颜色通道顺序为[B,G,R],而matplotlib颜色通道顺序为[R,G,B],所以需要调换一下通道位置
  plt.imshow(im[:,:,(2,1,0)])
  plt.title('原图像')
  #不显示坐标轴
  plt.axis('off')

  #子图2,通道R灰度图像
  plt.subplot(142)
  plt.imshow(R,cmap='gray')
  plt.title('通道R')
  plt.axis('off')

  #子图3,通道G
  plt.subplot(143)
  plt.imshow(G,cmap='gray')
  plt.title('通道G')
  plt.axis('off')

  #子图4,B
  plt.subplot(144)
  plt.imshow(B,cmap='gray')
  plt.title('通道B')
  plt.axis('off')

  plt.show()


if __name__== '__main__':
  main()

参考

色彩模式

你可能感兴趣的:(复杂网络与图像加密,RGB图像,灰度图像,python,通道分离)