RGB图像转为灰度图的几种方法

Neysa ·
更新时间:2024-11-10
· 845 次阅读

RGB图像灰度化 RGB图像

我们来看看下面这张图,美不美
你的名字这么好看的图是咋个整出来的呢?哦!原来是这样:一幅图像III由很多个像素点组成的,而每个像素点又包含RGB(red,green,blue)三个通道值,范围是0-255,这样我们就能在计算机上看见彩色图片,画个丑图将就看
在这里插入图片描述

单独提取三个通道试试

RGB三通道
灰度化

怎么使得图像灰度化呢?
需要R=G=B=gray
我们现在列出一些方法来计算这个gray值

一、任选一通道作为gray

gray=Rgray=Rgray=R
or
gray=Ggray=Ggray=G
or
gray=Bgray=Bgray=B

二、RGB中最大值作为gray

gray=max(R,G,B)gray=max(R,G,B)gray=max(R,G,B)

三、RGB中平均值作为gray

gray=mean(R,G,B)gray=mean(R,G,B)gray=mean(R,G,B)

四、RGB中加权平均值作为gray

gray=0.299∗R+0.578∗G+0.114∗Bgray=0.299 * R+0.578 * G +0.114 * Bgray=0.299∗R+0.578∗G+0.114∗B

python+opencv可以调函数

gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

MATLAB中的函数是gray=rgb2gray(img) 当然也可以自己写,附上自己写的加权平均数的python代码 def rgb2gray(img): b=img[:,:,0].copy() g=img[:,:,1].copy() r=img[:,:,2].copy() out = 0.2126 * r + 0.7152 * g + 0.0722 * b img[:,:,0]=out img[:,:,1]=out img[:,:,2]=out img = img.astype(np.uint8) return img

------------------------------------------------------------------------------------------------------------

结果还是展示一下
六种方法结果

具体的情况选择具体的方法来做~


作者:努力学习的萝卜



rgb 灰度图 方法

需要 登录 后方可回复, 如果你还没有账号请 注册新账号