文章目录
前言
PIL(Python Imaging Library)是Python图像处理库,目前PIL项目已经停止开发,最后一次更新是在2011年
强调一下:PIL不支持Python3.x
Pillow也是Python的图像处理库,与PIL区别:Pillow 是PIL特定版本Fork代码,Pillow 兼容PIL绝大多数用法,开发活跃,更主要是Pillow库支持Python3.x,所以推荐使用Pillow
- 安装
pip install pillow
基本图像处理:PIL
高级图像处理:Opencv
一、pillow使用
1.1 图像创建测试
Pillow也可以新建空白图像,第一个参数是 mode即颜色空间模式,第二个参数指定了图像的分辨率(宽x高),第三个参数是颜色。
- 可以直接填入常用颜色的名称。如’red’
- 也可以填入十六进制表示的颜色,如#FF00O表示红色。
- 还能传入元组,比如(255,0,0,255)或者(255,0,0)表示红色。
1.2 颜色与RGBA
RGB:Red Green Blue Alpha(透明度)
计算机通常将图像表示为RGB值,或者再加上alpha值(通透度,透明度),称为RGBA值。在Pillow中,RGBA的值表示为由4个整数组成的元组,分别是R、G、I B、A。整数的范围0~255。RGB全0就可以表示黑色,全255代表黑色。可以猜测
(255,0,0,255)代表红色,因为R分量最大,G、B分量为0,所以呈现出来是红色。
但是当alpha值为0时,无论是什么颜色,该颜色都不可见,可以理解为透明。
二、使用步骤
2.1 Image读取测试
代码如下(示例):
frim PIL import Image
image = Image.open("dog.png")
print(img.format)
print(img.mode)
print(img.size)
img.show() #show方法显示图片
- 输出
PNG
RGB
(600,375)
一张图片三种颜色,RGB(Red红,Green绿,Blue蓝),牛顿三元色构成,**split()**函数可以将一张图片按照颜色分解为三张图片,单个色的图片显示,默认为灰度显示图
r,g,b = img.spilt()
#单通道显示图像
b.show()
将原来拆分的三个颜色,打乱顺序重新组合,图片的颜色发生了改变,原来绿色图变成了红色图
# 打乱顺序,重新合并
img = Image.merge("RGB",(g,b,r))
img.show()
2.2 裁剪图像
Image有个crop()方法接收一个矩形区域元组(顺序是(左,顶,右