1. 灰度变换
1.1 原理
当一幅rgb图像每一个点的三个彩色分量的值都相等,即R=G=B。我们就可以用其中一维来表示这个图片,因为三个分量都相等。这一个过程就叫做“灰度化”,灰度化以后得到的图片矩阵会从3维降至2维,这张图片看起来也是黑白的。
1.2 Numpy
Numpy是非常有名的Python科学计算工具包,其中包含了大量有用的思想,比如数组对象(用来表示向量、矩阵、图像等)以及线性代数函数。
Numpy中的数组对象几乎贯穿用于基本图像变换的所有例子中。数组对象可以帮助实现数组中的重要操作,比如矩阵乘积、转置、解方程系统、向量乘积和归一化,为图像变形、对变化进行建模、图像分类、图像聚类等提供了基础。
在python基本图像操作中,当载入图像时,通过调用 array() 方法将图像转换成Numpy的数组对象。Numpy 中的数组对象是多维的,可以用来表示向量、矩阵和图像。通过对图像的数组进行直接操作,就可以完成很多图像处理。
安装numpy包:首先进入网站 https://pypi.org/
输入要查找的包numpy
选择Download File
根据电脑是32位还是64位选择下载
下载完成后保存至根目录,打开cmd,输入pip install numpy
numpy包安装完成
1.3 方法
将图像转换为灰度可以使用平均值法:Gray=(R+G+B)/3;
通过求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),再用它替换原来的RGB(R,G,B)就是灰度图像了。这种方法产生的灰度图像比较柔和。
可以通过使用python的语句convert(‘L’)来获得灰度图
1.4 实现
from PIL import Image
from pylab import *
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)
figure()
pil_im = Image.open('11.jpg')
gray()
subplot(121)
title(u'原图',fontproperties=font)
axis('off