python中能处理图像的第三方库_用Python中的pillow库,做图像处理(一)

今天起,小编开始给大家介绍Pytho编程语言中,一种专门用于去做图像处理的利器---pillow库。

pillow库简介

Pillow是PIL(即Python Imaging Library)的一个派生分支,但如今已经发展成为比PIL本身更具活力的图像处理库。pillow可以说已经取代了PIL,是一个很流行的图像库,它比opencv更为轻巧,是一个轻量级的图像处理库。正因如此,它深受大众的喜爱。该库提供了广泛的文件格式支持,如JPEG、PNG、GIF、等,它提供了图像档案、图像显示、图像处理等功能。PIL中所涉及到的基本概念包括:(bands)通道,(mode)模式,(coordinate system)坐标系统,(palette)调色板,(filters)过滤器。(1)图形通道(bands)

在PIL中,每张图像都是由一个或者多个数据通道构成,PIL可以在单张图片中合成相同维数和深度的多个通道,如RGB有三个通道,而灰度图像则只有一个通道图像实际上是像素数据的矩形图。

(2)图像模式(mode)

图像的模式(mode)定义了图像中像素的类型和深度,常用模式如下表所示:

图像模式

(Mode)

含义

L

表示黑白之间的灰度,占8bit像素

p

8位像素,使用调色版映射

RGB

为真彩色,占用3x8位像素,其中R为red红色,G为green绿色,B为blue蓝色,三原色叠加形成的色彩变化,如三通道都为0则代表黑

RGBA

带透明蒙版的真彩色,其中的A为alpha透明度,占用4x8位像素

(3)图像的坐标系(coordinate system)

pillow库使用笛卡尔像素坐标系统(如下图所示),图像的坐标从左上角开始(0,0),坐标值表示像素的角,它实际上位于(0.5,0.5);python中坐标通常以2元组(X,Y)的形式传递,矩形表示为4元组(l_x,t_y,r_x,b_y),X轴从左到右,Y轴从上到下,顺序是从左上右下表示,从左上角开始,如一个800X600像素的图像矩形表示为(0,0,10,10),它实际上时左上角锁定,向右下延伸的。

(4)pillow在

图像处理中的作用

pillow在做图像处理中主要有以下两大重要作用:

(1)图像归档:对图像进行批处理、生成图像预览、图像格式转换等;

(2)图像处理:图像基本处理、像素处理、颜色处理等。

2.pillow库的使用方法

(1) 安装方法

pillow做为python的第三方库,在使用之前首先要安装,安装方法很简单即进入cmd窗口中,然后输入命令:

pip install pillow

(2) 调用方法

和所有库一样,在使用pillow库时,首先要将该库中的所用模块import进来,即输入代码

from PIL import  模块名

然后通过PIL. 的形式来调用pillow库中的一些重要模块。pillow中常用模块包含如下:

模块名

作用

Image

图像模块提供PIL名称的类,该模块提供了许多功能,

包括文件加载和创建新图像等

ImageFont

用于设置图片中的字体

ImageDraw

用于在绘制图形上绘制文字与各种形状等等

ImageChops

ImageChops模块包含多个算术图像的操作,称为通

道操作,它们可以实现,特殊效果,图像合成,算法绘画等

ImageFilter

ImageFilter模块包含许多可以与filter()方法一起使用的预

定义增强过滤器

ImageEnhance

ImageEnhance模块用于对图像的增强,可以使用该模块调

整图像的对比度,亮度和清晰度

学习pillow库处理图像,其实主要要掌握的就是以上这些模块的用。今天先学习pillow库的核心模块---Image模块。

3.Image模块使用简介(一)

Image模块是pillow库的核心模块,该模块包含许多命令,利用这些命令可实现对图像文件的加载、创建新图像以及对图像进行剪裁与拼接等。今天先来介绍一下两个常用的Image模块的命令.

(1).open( path)命令

open(path):  打开已有图像,返回一image对象。path为图片路径。例如,以下代码的作用是加载当前路径下的图片"跑.png",加载后,返回的im为一个

image对象。通过调用该对象的show()命令,可以将该图片显示出来。

fromPIL importImage

im=Image.open('跑步.png')

im.show()

(2).new(mode, size,color)命令

new(mode, size,color): 新建一个模式(mode )为“RGB”、大小size、颜色为color的image对象.其中的size与color均为元组。例如,以下代码可以新建一个,模式为“RGB”,长为200像素、宽为200像素、颜色为红色的图片对象im,然后通过该对象的save方法,将图片保存起来。

fromPIL importImage

im=Image.new('RGB',(200,200),(255,0,0))

im.save('1.png')

最终,保存的1.png图片如下:

3.Image模块小案例一:  用for循环生成五彩图片

为了练习以上两个命令,现编写以下一个小案例,案例的最终目标是要用Image模块的new命令生成多种随机颜色的图像。代码如下:

fromPIL importImage

fromrandom importrandint

importos

importtime

ifos.path.exists('newpic'):

passelse:

os.mkdir('newpic')

fori inrange(1,201):

im = Image.new('RGB',(200,200),(randint(0,255),randint(0,255),randint(0,255)))

time.sleep(0.2)

im.save('./newpic/'+str(i)+'.png')

注意:该案例结合了random随机库与pillow库。其中图片的颜色是通过randint函数随机产生的。

最终,演示效果如下:

(-end-)

扫码关注公众号

推荐阅读

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值