概述

PIL(Python Imaging Library)是Pythonn中最常用的图像处理库,PIL支持图像存储、显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放、裁剪、叠加以及图像添加线条、图像和文字等操作。根据功能的不同,PIL库共包括21个与图片相关的类,这些类可以被看做是子库或PIL库中的模块,Image是最常用的类(其他的类就不在此一一列出)。

PIL库主要可以实现图像归档和图像处理两方面的功能需求。
● 图像归档:对图像进行批处理、生成图像预览、图片格式转换等。
● 图像处理:图像基本处理、像素处理、颜色处理等。

import PIL

Image类

from PIL import Image

1. 文件的读取和创建

方法 描述
Image.open(filename) 根据参数加载图片文件
Image.new(mode,size,color) 根据参数创建一个新的图像
Image.frombytes(mode,size,date) 根据像素点date创建图像
Image.open(StringIO,StringIO(buffer)) 从字符串获取图像
Image.verify() 对图像文件完整性进行检查,返回异常

2. Image类的常用属性

属性 描述
Image.format 识别图像格式或来源,如果图像不是从文件读取,值为None
Image.mode 图像的色彩模式,“L”为灰色图像、“RGB”为真彩色图像、“CMYK”为出版图像
Image.size 图像的宽度和高度,单位是像素,返回值是二元元祖(tuple)
Image.palette 调色板属性,返回一个ImagePalette类型

3. Image读取序列类图像文件

Image还能读取序列类图像文件,包括 gif / fli / flc / tiff 等文件格式。open()方法打开一个图像时自动加载序列中的第一帧,使用seek()和tell()方法在不同帧之间的移动。

方法 描述
Image.seek(frame) 跳转并返回图像中的指定帧
Image.tell 返回当前帧的序列

4. Image类的图像转换和保存方法

方法 描述
Image.save(filename, format) 将图像保存为filename文件名,format是图片格式
Image.convert(mode) 使用不同的参数,转换图像为新的模式
Image.thumbnail(size) 创建图像的缩略图,size是缩略图尺寸的二元元祖

5. Image类的图像旋转和缩放方法

方法 描述
Image.resize(size) 按size大小调整图像,生成副本
Image.rotate(angle) 按angle角度旋转图像,生成副本

6. Image类对像素点、通道单独操作

Image类能够对每个想像素点或者一幅RGB图像的每个通道单独进行操作。split()方法能够将RGB图像通道提取出来,merge()方法能够将各独立通道再合成一幅新的图像。

方法 描述
Image.point(func) 根据函数func的功能对每个元素进行运算,返回图像副本
Image.split() 提取RGB图像的每个颜色通道,返回图像副本
Image.merge(mode,bands) 合并通道,其中mode表示色彩,bands表示新的色彩通道
Image.blend(im1,im2,alpha) 将两幅图片im1和im2按照如下公式插值后生成新的图像:im1*(1.0-alpha)+im2*alpha

7. 图像过滤

PIL库的ImageFilter类提供图像过滤的方法。
       
from PIL import ImageFilter

方法 描述
ImageFilter.BLUR 图像的模糊效果
ImageFilter.CONTOUR 图像的轮廓效果
ImageFilter.DETAIL 图像的细节效果
ImageFilter.EDGE_ENHANCE 图像的边界加强效果
ImageFilter.EDGE_ENHANCE_MODE 图像的阈值边界加强效果
ImageFilter.EMBOSS 图像的浮雕效果
ImageFilter.FIND_EDGES 图像的边界效果
ImageFilter.SMOOTH 图像的平滑效果
ImageFilter.SMOOTH_MORE 图像的阈值平滑效果
ImageFilter.SHARPEN 图像的锐化效果

利用Image类的filter()方法可以使用ImageFilter类,使用方法如下:

Image.filter(ImageFilter.function)

7. 图像增强

ImagEnhance类提供了更高级的图像增强功能,如调整色彩度、亮度、对比度、锐化等。
       
from PIL import ImagEnhance

方法 描述
ImageEnhance.enhance(factor) 对选择属性的数值增强factor倍
ImageEnhance.Color(im) 调整图像的颜色平衡
ImageEnhance.Contrast(im) 调整图像的对比度
ImageEnhance.Brightness(im) 调整图像的亮度
ImageEnhance.Sharpness(im) 调整图像的锐度

【Python】PIL库介绍相关推荐

  1. python123九宫格输入_使用python PIL库实现简单验证码的去噪方法步骤

    字符型图片验证码识别完整过程及Python实现的博主,我的大部分知识点都是从他那里学来的. 想要识别验证码,收集足够多的样本后,首先要做的就是对验证码原始图片进行处理,对验证码识别分类之前,一般包括: ...

  2. 《利用Python进行数据分析·第2版》第13章 Python建模库介绍

    第1章 准备工作 第2章 Python语法基础,IPython和Jupyter 第3章 Python的数据结构.函数和文件 第4章 NumPy基础:数组和矢量计算 第5章 pandas入门 第6章 数 ...

  3. Python数据分析学习系列 十三 Python建模库介绍

    Python数据分析学习系列 十三 Python建模库介绍 资料转自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下载 ...

  4. 【利用Python进行数据分析】13 - Python建模库介绍

    第十三章 Python建模库介绍 1.pandas与模型代码的接口 2.用Patsy创建模型描述 2.1.Patsy创建模型设计矩阵 2.2.用Patsy公式进行数据转换 2.3.分类数据和Patsy ...

  5. 使用Python PIL库实现简单验证码的去噪处理

    想要识别验证码,收集足够多的样本后,首先要做的就是对验证码原始图片进行处理,对验证码识别分类之前,一般包括:将彩色图片转换成灰度图.将灰度图二值化和去除噪点三个基本过程.这里仅以比较简单的验证码为例, ...

  6. 利用python进行数据分析——第13章 python建模库介绍

    文章目录 一.pandas与建模代码的结合 二.使用patsy创建模型描述 2.1Patsy公式中的数据转换 2.2分类数据与Patsy 三.statsmodels介绍 3.1评估线性模型 3.2评估 ...

  7. 第十三篇 Python建模库介绍

    前面已经介绍了Python数据分析的编程基础.数据分析师和科学家总是在数据规整和准备上花费⼤量时间,前面部分的重点在于掌握这些功能. 开发模型选⽤什么库取决于应⽤本身.许多统计问题可以⽤简单⽅法解决, ...

  8. 第13章 Python建模库介绍--Python for Data Analysis 2nd

    本书中,我已经介绍了Python数据分析的编程基础.因为数据分析师和科学家总是在数据规整和准备上花费大量时间,这本书的重点在于掌握这些功能. 开发模型选用什么库取决于应用本身.许多统计问题可以用简单方 ...

  9. 使用Python PIL库中的Image.thumbnail函数裁剪图片

    发现自己还没有头像,想着上传ubuntu系统中我很喜欢的一个背景图片来当头像,但是因为图片过大,上传失败了.那么,我们如何使用python中强大的PIL库来进行图片裁剪呢? from PIL impo ...

最新文章

  1. c++以空格分开的输入数组_技术贴,MATLAB矩阵与数组汇总讲解
  2. MySQL 数据库修改访问权限,不能使用ip连接mysql问题处理:Host ‘host.docker.internal‘ is not allowed to connect to this ...
  3. rstudio运行python_RStudio 1.2发布,改进对Python chunks,R脚本等的测试和支持
  4. 一张有趣的图--《teach yourself c++ in 21 days》
  5. Android的sdk、api及工程目录说明
  6. 基于SpringBoot项目的https
  7. JavaScript服务器端高级编程(Array.indexOf()和lastIndexOf()方法)
  8. jsweet-examples下载测试
  9. 《云网络:数字经济的连接》图书发布会将于7月16日在杭举行
  10. ISO 27001解读(一)管理思路
  11. Data Recovery Strategy Determines Backup Strategy【每日一译】--2012-11-11
  12. TGA文件格式分析和图片举例
  13. 利用$randon和seed可以在测试脚本里面产生测试所需的赋值
  14. 2022-2028年全球与中国救生艇行业市场前瞻与投资战略规划分析
  15. 【树形DP】 HDOJ 5148 Cities
  16. Activity子流程——嵌入式流程
  17. java怎么销毁session_「销毁session」java中session和cookie的创建与销毁
  18. ADI-trinamic精确控制医疗设备(IVD体外诊断仪器)
  19. pta:2019来了
  20. java+mysql简单实现点赞评论转发帖子

热门文章

  1. ubuntu jdk tomcat mysql_Ubuntu下安装JDK+TOMCAT+MYSQL
  2. java 两位小数 四舍五入_java里的四舍五入(保留两位小数,返回double类型)
  3. 嵌入式 U 盘自动挂载
  4. 05.Qt设置背景图片
  5. linux多线程学习(二)——线程的创建和退出
  6. Linux内核分析 - 网络[八补]:IP协议补充
  7. 从程序员到项目经理(三)
  8. 条件锁pthread_cond_t 的应用
  9. java生成unix.z压缩_JAVA压缩 解压缩zip 并解决linux下中文乱码
  10. qt mysql分页控件_Qt分页布局与切分窗口的实现