Pillow可以帮助用户调整Python中添加图像处理功能,方便用户管理图像和使用代码处理图像,对于需要使用Python处理数据或者是管理图像的朋友很有帮助,软件提供很多图像处理功能,支持使用图像类处理当前的图像,可以在软件建立类,可以编辑类函数,可以读取图像,可以对图像增强,使用open模块就可以加载图像到软件处理,为用户编辑图像提供更多帮助;Pillow可以更好扩展Python图像库图像库功能,让Python Imaging Library拥有更多的图像编辑和转换功能,可以从本地读取图像到软件处理,可以将图像转换JPEG,可以识别图像,可以剪切,粘贴和合并图像!
Pillow软件功能
1、概述
Python Imaging Library将图像处理功能添加到您的Python解释器中。
该库提供了广泛的文件格式支持,有效的内部表示形式以及相当强大的图像处理功能。
核心图像库旨在快速访问以几种基本像素格式存储的数据。它应该为通用的图像处理工具提供坚实的基。
让我们看一下该库的一些可能用法。
2、图片档案
Python Imaging Library是图像存档和批处理应用程序的理想选择。您可以使用该库创建缩略图,在文件格式之间转换,打印图像等。
当前版本标识并读取大量格式。有意将写支持限制为最常用的交换和表示格式。
3、影像显示
当前版本包括TkPhotoImage和BitmapImage接口,以及可与PythonWin和其他基于Windows的工具包一起使用的Tk和 接口。许多其他GUI工具箱都提供了某种PIL支持。Windows DIB intece
为了进行调试,还有show()一种将图像保存到磁盘并调用外部显示实用程序的方法。
4、图像处理
该库包含基本的图像处理功能,包括点作,使用一组内置的卷积内核进行过滤以及颜色空间转换。
该库还支持图像大小调整,旋转和任意仿变换。
有一种直方图方法,可让您从图像中提取一些统计。这可用于自动对比度增强和全局统计分析。、
Pillow软件特色
1、增强功能
要进行更高级的图像增强,可以使用ImageEnhance模块中的类 。从图像创建后,可以使用增强对象快速尝试不同的设置。
您可以通过这种方式调整对比度,亮度,色彩平衡和清晰度。
2、图像序列
Python Imaging Library包含对图像序列(也称为动画格式)的一些基本支持。支持的序列格式包括FLI / FLC,GIF和一些实验格式。TIFF文件也可以包含多个帧。
3、PostScpt打印
Python Imaging Library包含在PostScpt打印机上打印图像,文本和图形的功能
4、控制解码器
一些解码器允许您在从文件中读取图像时对其进行作。当创建缩略图(通常速度比质量更重要)并打印到单色激光打印机(仅需要图像的灰度版本)时,通常可以使用它来加快解码速度。
5、Python Imaging Library处理栅格图像;即像素数据的矩形。
图像可以包含一个或多个数据带。Python Imaging Library可让您在单个图像中存储多个波段,只要它们都具有相同的尺寸和深度。例如,PNG图像的红色,绿色,蓝色和Alpha透明度值可能具有“ R”,“ G”,“ B”和“ A”带。许多作分别作用于每个波段,例如直方图。通常,将每个像素视为每个波段具有一个值通常很有用。
Pillow教程
教程
使用图像类
Python Imaging Library中最重要的类是 Image在模块中定义的具有相同名称的类。您可以通过多种方式创建此类的实例。通过从文件加载图像,处理其他图像或从头开始创建图像。
要从文件加载图像,请使用模块中的open()功能Image:
如果成功,此函数将返回一个Image对象。现在,您可以使用实例属来文件内容:
该format属标识图像的来源。如果未从文件读取图像,则将其设置为“无”。size属是一个包含宽度和高度(以像素为单位)的2元组。该 mode属定义图像中条带的数量和名称,以及像素类型和深度。常见模式是灰度图像的“ L”(亮度),真彩色图像的“ RGB”和印前图像的“ YK”。
如果无法打开文件,OSErr则会引发异常。
一旦有了Image该类的实例,就可以使用该类定义的方法来处理和作图像。例如,让我们显示刚刚加载的图像:
笔记
标准版本的show()效率不是很高,因为它将图像保存到临时文件并调用实用程序来显示图像。如果您没有安装适当的实用程序,它甚至将无法工作。但是,当它确实起作用时,它对于调试和测试非常方便。
以下各节概述了此库中提供的各种功能。
读写图像
Python Imaging Library支持多种图像文件格式。要从磁盘读取文件,请使用模块中的open()功能 Image。您不必知道打开文件的文件格式。该库根据文件的内容自动确定格式。
要保存文件,请使用类的save()方法 Image。保存文件时,名称变得很重要。除非您指定格式,否则库将使用文件扩展名来发现要使用的文件存储格式。
将文件转换为JPEG
可以向该save() 方法提供第二个参数,该参数明确指定文件格式。如果使用非标准扩展名,则必须始终以这种方式指定格式:
创建JPEG缩略图
重要的是要注意,除非确实需要,否则库不会解码或加载栅格数据。当您打开文件时,将读取文件头以确定文件格式,并提取模式,大小和其他对文件进行解码所需的属,但文件的其余部分将在以后处理。
这意味着打开图像文件是快速的作,与文件大小和压缩类型无关。这是一个快速识别一组图像文件的简单脚本:
识别图像文件
剪切,粘贴和合并图像
本Image类包含让您在图像内作区域的方法。要从图像中提取子矩形,请使用cp()方法。
从图像复制子矩形
该区域由一个四元组定义,坐标为(左,上,右,下)。Python Imaging Library使用左上角带有(0,0)的坐标系。另请注意,坐标是指像素之间的位置,因此上例中的区域恰好是300x300像素。
现在可以以某种方式处理该区域并将其粘贴回去。
处理子矩形,将其粘贴回
粘贴区域时,区域的大小必须与给定区域完全匹配。另外,该区域不能延伸到图像之外。但是,原始图像的模式和区域不需要匹配。如果没有,则在粘贴之前会自动转换区域
这是另一个示例:
动图像
对于更高级的技巧,paste方法还可以将透明度蒙版作为可选参数。在此蒙版中,值255表示粘贴的图像在该位置是不透明的(也就是说,粘贴的图像应按原样使用)。值0表示粘贴的图像是完全透明的。中间的值表示不同级别的透明度。例如,粘贴RGBA图像并将其用作蒙版将粘贴图像的不透明部分,但不粘贴其透明背景。
Python Imaging Library还允许您使用多波段图像(例如RGB图像)的各个波段。split方创建一组新图像,每个图像都包含原始多波段图像中的一个波段。合并功能采用一种模式和一组图像,将它们组合成一个新图像。以下示例交换了RGB图像的三个波段:
拆分和合并乐队
请注意,对于单波段图像,split()返回图像本身。要使用各个色带,您可能需要先将图像转换为“ RGB”。
几何变换
本PIL.Image.Image类包含的方法 resize()和tate()图像。前者采用元组给出新的大小,后者以逆时针角度为单位。
简单的几何变换
若要以90度为步长旋转图像,可以使用tate()方法 ,也可以使用 transpose()方法。后者还可以用于围绕图像的水平或垂直轴翻转图像。
转置影像
transpose(ROTATE)tate()如果expand标记为true,则作也可以与作相同地执行 ,以对图像的大小提供相同的更改。
可以通过该tranorm()方法执行图像变换的更一般形式 。
颜色转换
Python Imaging Library使您可以使用该convert()方法在不同像素表示形式之间转换图像。
模式间转换
该库支持每种支持的模式与“ L”和“ RGB”模式之间的转换。要在其他模式之间转换,您可能必须使用中间图像(通常是“ RGB”图像)。
影像增强
Python Imaging Library提供了许多可用于增强图像的方法和模块。
筛选器
该ImageFilter模块包含许多可与该filter()方法一起使用的预定义增强过滤器 。
应用过滤器
点作
该point()方法可以用于转换图像的像素值(例如,图像对比度纵)。在大多数情况下,可以将一个参数的函数对象传递给此方法。每个像素均根据该功能进行处理:
应用点变换
使用以上技术,您可以快速将任何简单表达式应用于图像。您还可以结合使用point()和 paste()方法来有选择地修改图像
近期热门