PIL库图像处理
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库图像处理的更多相关文章
- Python 之 使用 PIL 库做图像处理
http://www.cnblogs.com/way_testlife/archive/2011/04/17/2019013.html Python 之 使用 PIL 库做图像处理 1. 简介. 图像 ...
- python爬虫基础15-python图像处理,PIL库
Python图像处理-Pillow 简介 Python传统的图像处理库PIL(Python Imaging Library ),可以说基本上是Python处理图像的标准库,功能强大,使用简单. 但是由 ...
- [转]Python 之 使用 PIL 库做图像处理
Python 之 使用 PIL 库做图像处理 1. 简介. 图像处理是一门应用非常广的技术,而拥有非常丰富第三方扩展库的 Python 当然不会错过这一门盛宴.PIL (Python Imaging ...
- python图像处理之PIL库
PIL库是python语言第三方库,需要通过pip工具安装,安装库的名字是pillow. PIL库支持图像存储,显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放,裁剪,叠加以及向图像添加线 ...
- PIL库,图像处理第三方库
PIL ---> python imaging library 安装需要安装pillow库,包含了21种类,其中Image类是PIL最重要的一个类,可以通过它来处理图像. Python最常用的 ...
- 用PIL库进行图像处理
一.如果系统里没有安装PIL库的,请先到命令提示符输入“pip install pillow”进行安装 二.之后就可以参考以下的代码 from PIL import Image from pylab ...
- 一秒钟带你走进P图世界-----(python)PIL库的使用
python-----PIL库的使用 一.什么是PIL库 1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素.色彩操作功 ...
- python之PIL库(Image模块)
PIL(Python Image Library)是python的第三方图像处理库,PIL的功能非常的强大,几乎被认定是Python的官方图像处理库了. 由于PIL仅支持到python2.7于是一群志 ...
- 玩转PIL库
1.安装pillow库: 在cmd下,输入简单的命令: pip install pillow 即可安装pillow库. 2.PIL库的简介: 1. PIL库主要有2个方面的功能: (1) 图像归档: ...
随机推荐
- c# 通过URl 获取返回的json格式数据
方法一 http://blog.csdn.net/angle_greensky110/article/details/52209497 protected string GetJson(string ...
- python 获取list的下标
print(your_list.index('your_item')) #your_list为列表名称 your_item为需要修该的数据
- Python基础 ----- 流程控制
------ 条件判断 if 条件判判断语法: 条件判断注意: 1.由if 条件起始 2.关键字后面要加一个空格 3.条件后面接: 4.符合python代码缩进格式 5.条件判断可以有多种组合方式 ...
- mybatis generator 源码学习
mybatis/generator 源码地址mybatis/parent 源码地址1. 分别点击Download ZIP下载到本地. 2. 解压generator-master.zip中的core到g ...
- JavaSE基础知识(5)—面向对象(5.4面向对象三大特征:封装、继承、多态)
面向对象编程具有三大特征: 封装 继承 多态 一.封装 1.好处 狭义的封装:也就是属性的封装,避免了任意赋值的危险,提高了数据的安全性! ①隐藏一个类中不需要对外提供的实现细节 ②使用者只能通过实现 ...
- anaconda安装qt错误
windows下miniconda2安装python3下的qt包报错 conda install qt ERROR conda.core.link:_execute_actions(330): An ...
- php JS 导出表格特殊处理
但是这样导出身份证号会变为科学计数: 解决方法就是: 我们了解一下excel从web页面上导出的原理.当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取 它,所以把mi ...
- centos 7 安装vscode
网上很多写的安装,会遇到一个问题,就是无法启动: sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh ...
- try_files
try_files $uri $uri/ /index.php$is_args$args 假设你防问 https://demo.com/demo 1.$uri:查找/demo文件 2.$ui/:查找/ ...
- python 数据可视化 -- 清理异常值
中位数绝对偏差(Median Absolute Deviation, MAD)用来描述单变量(包含一个变量)样本在定量数据中可变性的一种标准.常用来度量统计分布,因为它会落在一组稳健的统计数据中,因此 ...