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

本文介绍了RGB图像的三个通道(R、G、B)及其尺寸表示,阐述了灰度化过程,通过Python代码展示了如何使用OpenCV进行灰度化,并提供了自定义灰度化函数。通过图像显示,帮助读者直观理解RGB到灰度图像的转换。
摘要由CSDN通过智能技术生成

问题

学习图像方向或者做深度学习,需要图像处理的知识,这篇是图像基础知识:一张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)

#调用接口读取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图片三通道以及灰度化问题~~~
如果搞清楚了额,可以留言:清楚了
如果还有疑惑,欢迎留言讨论哦~~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猫 猫小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值