RGB图像灰度化
RGB图像
我们来看看下面这张图,美不美
这么好看的图是咋个整出来的呢?哦!原来是这样:一幅图像
I
I
I由很多个像素点组成的,而每个像素点又包含RGB(red,green,blue)三个通道值,范围是0-255,这样我们就能在计算机上看见彩色图片,画个丑图将就看
单独提取三个通道试试
灰度化
怎么使得图像灰度化呢?
需要R=G=B=gray
我们现在列出一些方法来计算这个gray值
一、任选一通道作为gray
g
r
a
y
=
R
gray=R
gray=R
or
g
r
a
y
=
G
gray=G
gray=G
or
g
r
a
y
=
B
gray=B
gray=B
二、RGB中最大值作为gray
g r a y = m a x ( R , G , B ) gray=max(R,G,B) gray=max(R,G,B)
三、RGB中平均值作为gray
g r a y = m e a n ( R , G , B ) gray=mean(R,G,B) gray=mean(R,G,B)
四、RGB中加权平均值作为gray
g r a y = 0.299 ∗ R + 0.578 ∗ G + 0.114 ∗ B gray=0.299 * R+0.578 * G +0.114 * B gray=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
out = out.astype(np.uint8)
return out
------------------------------------------------------------------------------------------------------------
结果还是展示一下
具体的情况选择具体的方法来做~