问题
学习图像方向或者做深度学习,需要图像处理的知识,这篇是图像基础知识:一张RGB图片的三个通道以及灰度化。
三通道
一张RGB图像有三个通道,分别为R通道,G通道,B通道。如果此RGB的长宽分别为W*H,那么此相片的大小为W*H*3(三个通道的数据,因此需要乘以3)。
灰度化
一张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)
r,g,b=cv2.split(img)
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])
plt.subplot(231)
plt.imshow(b)
plt.title('Blue')
plt.subplot(232)
plt.imshow(g)
plt.title('Green')
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图片三通道以及灰度化问题~~~
如果搞清楚了额,可以留言:清楚了
如果还有疑惑,欢迎留言讨论哦~~