【深度学习之图像处理基础一】小白篇一张RGB图片的三个通道以及灰度化Python

问题

学习图像方向或者做深度学习,需要图像处理的知识,这篇是图像基础知识:一张RGB图片的三个通道以及灰度化。

三通道

一张RGB图像有三个通道,分别为R通道,G通道,B通道。如果此RGB的长宽分别为W*H,那么此相片的大小为W*H*3(三个通道的数据,因此需要乘以3)。

【深度学习之图像处理基础一】小白篇一张RGB图片的三个通道以及灰度化Python_第1张图片

灰度化

一张RGB图片是彩色的,灰度化后变成一个通道的灰度图片。
某像素(i,j)灰度化原理
.Gray[i][j]=0.299*R[i][j]+0.587*G[i][j]+0.114*B[i][j]

代码Python

import cv2
import numpy as np
import matplotlib.pyplot as plt

#读取图片
img=cv2.imread(./image/RGB.jpeg',cv2.IMREAD_COLOR)

#调用接口读取RGB图片的三个通道的图片
r,g,b=cv2.split(img)

#另一种方式表示三通道:b: img[:][:][0]   g: img[:][:][1]  r: img[:][:][2]


gray=np.zeros([img.shape[0],img.shape[1]],dtype=int)
#灰度化,灰度化使用接口直接灰度化
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

#根据灰度化原理,自己写一个灰度化函数
def image_gray(img):
    gray=np.zeros([img.shape[0],img.shape[1]],dtype=int)
    for i in range(0,gray.shape[0]):
        for j in range(0,gray.shape[1]):
            gray[i][j]=(int)(0.11*img[i][j][0]+0.59*img[i][j][1]+0.3*image[i][j][2])


#显示图片

#显示Blue通道图片
plt.subplot(231)
plt.imshow(b)
plt.title('Blue')

#显示Green通道图片
plt.subplot(232)
plt.imshow(g)
plt.title('Green')

#显示Red通道图片
plt.subplot(233)
plt.imshow(r)
plt.title('Red')

#显示灰度化的图片
plt.subplot(234)
plt.imshow(gray,cmap='gray')
plt.title('Gray')

#显示原图
plt.subplot(235)
plt.imshow(img,cmap='gray')
plt.title('Original')

plt.show()

写在最后

看完这篇博客,把代码敲一遍,看一下结果,基本搞清楚了RGB图片三通道以及灰度化问题~~~
如果搞清楚了额,可以留言:清楚了
如果还有疑惑,欢迎留言讨论哦~~

你可能感兴趣的:(图像处理基础,深度学习,图像处理,人工智能,python,opencv)