PIL有如下几个模块

Image模块、ImageChops模块、ImageCrackCode模块

ImageDraw模块、ImageEnhance模块、ImageFile模块

ImageFileIO模块、ImageFilter模块、ImageFont模块

ImageGrab模块、ImageOps模块、ImagePath模块

ImageSequence模块、ImageStat模块、ImageTk模块

ImageWin模块、PSDraw模块

下面仅介绍一下几种库,更全面介绍参考https://baijiahao.baidu.com/s?id=1595108270577043146&wfr=spider&for=pc

image模块

Image模块提供了一个相同名称的类,即image类,用于表示PIL图像。Image模块是PIL中最重要的模块,比如创建、打开、显示、保存图像等功能,合成、裁剪、滤波等功能,获取图像属性功能,如图像直方图、通道数等。

ImageEnhance模块

ImageEnhance模块包括一些用于图像增强的类。它们分别为Color类、Brightness类、Contrast类和Sharpness类。

ImageFilter模块

ImageFilter模块包括各种滤波器的预定义集合,与Image类的filter方法一起使用。该模块包含这些图像增强的滤器:

BLUR,CONTOUR,DETAIL,EDGE_ENHANCE

EDGE_ENHANCE_MORE,EMBOSS,FIND_EDGES

SMOOTH,SMOOTH_MORE和SHARPEN

PIL基本基本概念

PIL中所涉及的基本概念有如下几个:

通道(bands)、模式(mode)、尺寸(size)

坐标系统(coordinate system)、调色板(palette)

信息(info)和滤波器(filters)

通道

每张图片都是由一个或者多个数据通道构成。PIL允许在单张图片中合成相同维数和深度的多个通道。以RGB图像为例,每张图片都是由三个数据通道构成,分别为R、G和B通道。而对于灰度图像,则只有一个通道。对于一张图片的通道数量和名称,可以通过getbands()方法来获取。getbands()方法是Image模块的方法,它会返回一个字符串元组(tuple)。该元组将包括每一个通道的名称。Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

用PIL库处理图像

 from PIL import Image
from PIL import ImageFilter
from PIL import ImageEnhance
im=Image.open("余文乐.jpg")
im.thumbnail((300,400))
im.save("余文乐TN.jpg")
r,g,b=im.split()
newg=g.point(lambda i:i*0.9)
newb=b.point(lambda i:i<100)
om=Image.merge(im.mode,(r,newg,newb))
om.save("余文乐Merge.jpg")
om=Image.merge("RGB",(b,g,r))
om.save("余文乐BGR.jpg")
am=im.filter(ImageFilter.CONTOUR)
am.save("余文乐CONTOUR.jpg")
bm=ImageEnhance.Contrast(im)
bm.enhance(20).save("余文乐EnContrast.jpg")

效果图

原图

去光线图                                                          轮廓图                                                        20倍对比度增强效果图

缩略图

 from PIL import Image
from PIL import ImageEnhance
def BrightnessEnhancement(brightness):
# '''
# #亮度增强 :brightness在(0-1)之间,新图像较原图暗,在(1-~)新图像较原图亮 ,
# ##brightness=1,保持原图像不变;可自定义参数范围
# '''
image = Image.open(filepath)
enh_bri = ImageEnhance.Brightness(image)
# brightness =1.5
image_brightened = enh_bri.enhance(brightness)
image_brightened.show()
def ContrastEnhancement(contrast):
# '''
# #对比度增强: 可自定义参数contrast范围,contrast=1,保持原图像不变
# '''
image = Image.open(filepath)
enh_con = ImageEnhance.Contrast(image)
# contrast =1.5
image_contrasted = enh_con.enhance(contrast)
image_contrasted.show()
def ColorEnhancement(color):
# '''
# #色度增强 : 饱和度 color=1,保持原图像不变
# '''
image = Image.open(filepath)
enh_col = ImageEnhance.Color(image)
# color =0.8
image_colored = enh_col.enhance(color)
image_colored.show() def SharpnessEnhancement(sharpness):
# '''
# #锐度增强: 清晰度 sharpness=1,保持原图像不变
# '''
image = Image.open(filepath)
enh_sha = ImageEnhance.Sharpness(image)
# sharpness = 2
image_sharped = enh_sha.enhance(sharpness)
image_sharped.show()
if __name__ =="__main__":
filepath = '余文乐.jpg'
#原始图像
brightness = 1.5
contrast = 0.2
color=1.9
sharpness=0.1
BrightnessEnhancement(brightness)
ContrastEnhancement(contrast)
ColorEnhancement(color)

锐度增强

色度增强

对比度增强

亮度增强

欢迎留言 !

PIL库图像处理的更多相关文章

  1. Python 之 使用 PIL 库做图像处理

    http://www.cnblogs.com/way_testlife/archive/2011/04/17/2019013.html Python 之 使用 PIL 库做图像处理 1. 简介. 图像 ...

  2. python爬虫基础15-python图像处理,PIL库

    Python图像处理-Pillow 简介 Python传统的图像处理库PIL(Python Imaging Library ),可以说基本上是Python处理图像的标准库,功能强大,使用简单. 但是由 ...

  3. [转]Python 之 使用 PIL 库做图像处理

    Python 之 使用 PIL 库做图像处理 1. 简介. 图像处理是一门应用非常广的技术,而拥有非常丰富第三方扩展库的 Python 当然不会错过这一门盛宴.PIL (Python Imaging ...

  4. python图像处理之PIL库

    PIL库是python语言第三方库,需要通过pip工具安装,安装库的名字是pillow. PIL库支持图像存储,显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放,裁剪,叠加以及向图像添加线 ...

  5. PIL库,图像处理第三方库

    PIL  ---> python imaging library 安装需要安装pillow库,包含了21种类,其中Image类是PIL最重要的一个类,可以通过它来处理图像. Python最常用的 ...

  6. 用PIL库进行图像处理

    一.如果系统里没有安装PIL库的,请先到命令提示符输入“pip install pillow”进行安装 二.之后就可以参考以下的代码 from PIL import Image from pylab ...

  7. 一秒钟带你走进P图世界-----(python)PIL库的使用

    python-----PIL库的使用 一.什么是PIL库 1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素.色彩操作功 ...

  8. python之PIL库(Image模块)

    PIL(Python Image Library)是python的第三方图像处理库,PIL的功能非常的强大,几乎被认定是Python的官方图像处理库了. 由于PIL仅支持到python2.7于是一群志 ...

  9. 玩转PIL库

    1.安装pillow库: 在cmd下,输入简单的命令: pip install pillow  即可安装pillow库. 2.PIL库的简介: 1. PIL库主要有2个方面的功能: (1) 图像归档: ...

随机推荐

  1. c# 通过URl 获取返回的json格式数据

    方法一 http://blog.csdn.net/angle_greensky110/article/details/52209497 protected string GetJson(string ...

  2. python 获取list的下标

    print(your_list.index('your_item')) #your_list为列表名称 your_item为需要修该的数据

  3. Python基础 ----- 流程控制

    ------   条件判断 if 条件判判断语法: 条件判断注意: 1.由if 条件起始 2.关键字后面要加一个空格 3.条件后面接: 4.符合python代码缩进格式 5.条件判断可以有多种组合方式 ...

  4. mybatis generator 源码学习

    mybatis/generator 源码地址mybatis/parent 源码地址1. 分别点击Download ZIP下载到本地. 2. 解压generator-master.zip中的core到g ...

  5. JavaSE基础知识(5)—面向对象(5.4面向对象三大特征:封装、继承、多态)

    面向对象编程具有三大特征: 封装 继承 多态 一.封装 1.好处 狭义的封装:也就是属性的封装,避免了任意赋值的危险,提高了数据的安全性! ①隐藏一个类中不需要对外提供的实现细节 ②使用者只能通过实现 ...

  6. anaconda安装qt错误

    windows下miniconda2安装python3下的qt包报错 conda install qt ERROR conda.core.link:_execute_actions(330): An ...

  7. php JS 导出表格特殊处理

    但是这样导出身份证号会变为科学计数: 解决方法就是: 我们了解一下excel从web页面上导出的原理.当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取 它,所以把mi ...

  8. centos 7 安装vscode

    网上很多写的安装,会遇到一个问题,就是无法启动: sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh ...

  9. try_files

    try_files $uri $uri/ /index.php$is_args$args 假设你防问 https://demo.com/demo 1.$uri:查找/demo文件 2.$ui/:查找/ ...

  10. python 数据可视化 -- 清理异常值

    中位数绝对偏差(Median Absolute Deviation, MAD)用来描述单变量(包含一个变量)样本在定量数据中可变性的一种标准.常用来度量统计分布,因为它会落在一组稳健的统计数据中,因此 ...