PIL库图像处理

Python Imaging Library,简称PIL, 是 Python语言 中常用的图像处理库,需要通过pip工具安装:pip install pillow。PIL库支持图像存储、显示和处理,能够处理几乎所有图片格式,可以完成对图像的缩放、剪裁、叠加以及向图像添加线条、图像和文字等操作。

PIL包含21个与图片相关的类,这里只介绍Image类,Image类是PIL最重要的类,他代表一张图片,用以下方法引入:

要从文件加载图像,使用模块中的open()函数Image

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

要从文件加载图像,使用模块中的open()函数Image:

>>> im = Image.open("hopper.ppm")

如果成功,则此函数返回一个Image对象。

Image类有4个处理图片的常用属性,如下

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

可以查看文件属性:

>>> print(im.format, im.size, im.mode)
PPM (512, 512) RGB

format属性标识图像的来源。如果未从文件中读取图像,则将其设置为“无”。size属性是一个包含宽度和高度(以像素为单位)的2元组。该 mode属性定义图像中波段的数量和名称,以及像素类型和深度。常见模式是灰度图像的“L”(亮度),真彩色图像的“RGB”和印前图像的“CMYK”。

如果无法打开该文件,IOError则会引发异常。

获得Image类的实例后,可以使用此类定义的方法来处理和操作图像。例如,让我们显示刚刚加载的图像:

>>> im.show()

Python Imaging Library支持各种图像文件格式。要从磁盘读取文件,使用模块中的open()功能Image。无需知道打开文件的文件格式。库根据文件内容自动确定格式。

要保存文件,使用该类的save()方法 Image。保存文件时,名称变得很重要。除非指定格式,否则库使用文件扩展名来发现要使用的文件存储格式。

from __future__ import print_function
import os, sys
from PIL import Image

for infile in sys.argv[1:]:
    f, e = os.path.splitext(infile)
    outfile = f + ".jpg"
    if infile != outfile:
        try:
            Image.open(infile).save(outfile)
        except IOError:
            print("cannot convert", infile)
上述save函数还可指定保存格式,例如:
>>>im.save(outfile,"JPEG")

使用thumbnail(size,resample)(创建缩略图)创建一个指定大小(size)的缩略图,需要注意的是,thumbnail方法是原地操作,返回值是None。第一个参数是指定的缩略图的大小,第二个是采样的,有Image.BICUBICPIL.Image.LANCZOSPIL.Image.BILINEARPIL.Image.NEAREST这四种采样方法。默认是Image.BICUBIC。
>>> im.thumbnail((50,50),resample=Image.BICUBIC)
>>> im.show()

图像过滤

Pillow使用ImageFilter可以简单做到图像的模糊、边缘增强、锐利、平滑等常见操作。

from PIL import Image, ImageFilter

im = Image.open(im_path)
# 高斯模糊
im.filter(ImageFilter.GaussianBlur).save(r‘D:\gzt.jpg‘)
# 普通模糊
im.filter(ImageFilter.BLUR).saver‘D:\gzt.jpg‘)
# 边缘增强
im.filter(ImageFilter.EDGE_ENHANCE).save(r‘D:\gzt.jpg‘)
# 找到边缘
im.filter(ImageFilter.FIND_EDGES).save(r‘D:\gzt.jpg‘)
# 浮雕
im.filter(ImageFilter.EMBOSS).save(r‘D:\gzt.jpg‘)
# 轮廓
im.filter(ImageFilter.CONTOUR).save(r‘D:\gzt.jpg‘)
# 锐化
im.filter(ImageFilter.SHARPEN).save(r‘D:\gzt.jpg‘)
# 平滑
im.filter(ImageFilter.SMOOTH).save(r‘D:\gzt.jpg‘)
# 细节
im.filter(ImageFilter.DETAIL).save(r‘D:\gzt.jpg‘)

以下示例高斯模糊

>>>im.filter(ImageFilter.GaussianBlur).save(r‘D:\gzt.jpg‘)
>>>im.show()

原文地址:https://www.cnblogs.com/guyuanlin/p/10660422.html

时间: 2024-08-02 06:27:53

PIL库图像处理的相关文章

Python 之 使用 PIL 库做图像处理

Python 之 使用 PIL 库做图像处理 1. 简介. 图像处理是一门应用非常广的技术,而拥有非常丰富第三方扩展库的 Python 当然不会错过这一门盛宴.PIL (Python Imaging Library)是 Python 中最常用的图像处理库,目前版本为 1.1.7,我们可以 在这里 下载学习和查找资料. Image 类是 PIL 库中一个非常重要的类,通过这个类来创建实例可以有直接载入图像文件,读取处理过的图像和通过抓取的方法得到的图像这三种方法. 2. 使用. 导入 Image

Python图像处理PIL库简介

搬运自本人博客:http://www.xgezhang.com/python_pil.html 最近用到一些简单的图像处理,这里简单介绍一下,Python Imaging Library (PIL)是PythonWare公司提供的免费的图像处理工具包,是python下的图像处理模块,支持多种格式,并提供强大的图形与图像处理功能.虽然在这个软件包上要实现类似MATLAB中的复杂的图像处理算法并不太适合,但是Python的快速开发能力以及面向对象等等诸多特点使得它非常适合用来进行原型开发.对于简单的

python图像处理之PIL库

PIL库是python语言第三方库,需要通过pip工具安装,安装库的名字是pillow. PIL库支持图像存储,显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放,裁剪,叠加以及向图像添加线条,图像和文字等操作. 功能需求: 图像归档:对图像进行批处理,生成图像预览,图像格式转换等. 图像处理:图像基本处理,像素处理,颜色处理等. PIL库Image类解析 导入方法:from PIL import Image 要加载一个图像文件,最简单的形式如下,之后所有操作对im起作用 from P

python PIL库回顾

之前用PIL的时候都不知道看官方文档,网上搜索结果靠前的一些介绍性的博客其实很扯淡,讲两个函数.贴三张图,文章就完了. 今天把他的文档看了看,发现一点也不简单,网上介绍的不过是冰山一角. 对于我这样一个不太懂多媒体的人,如果用到图像处理,主要也就这些操作: 读写.取通道.两幅图合并.像素点操作.各种滤镜.色彩模式转换.图像旋转.缩放.裁剪.仿射. PIL对付这些小喽啰,都是完全没有问题的. 读写 open是Image类的一个方法,返回值是一个Image对象,值得注意的是,open不能打开网络图片

python PIL库回顾1

1 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15px 0; } /* HE

windows7 下安装Python的PIL库

前言: Python中最常用的图像处理库是PIL(PythonImaging Library),其中Image类是PIL库中一个非常重要的类,通过这个类来创建实例可以有直接载入图像文件,读取处理过的图像和通过抓取的方法得到的图像这三种方法. 一PIL版本选择 从网上搜索得知,PIL官方只有32位的安装文件,安装时会提示找不到python的安装路径.64位Win7下无法安装PIL库的原因是:PIL官方http://www.pythonware.com/products/pil/提供的PIL二进制安

如何在windows下安装Python的PIL库

最近在学习廖大大的Python教程,今天正好学习到“安装第三方模块”这一章节,第一个任务就是安装“PIL”库. PIL库是个啥?廖大大的告诉我们: Python Imaging Library,这是Python下非常强大的处理图像的工具库.一般来说,第三方库都会在Python官方的pypi.python.org网站注册,要安装一个第三方库,必须先知道该库的名称,可以在官网或者pypi上搜索,比如Python Imaging Library的名称叫PIL,因此,安装Python Imaging L

关于Python安装PIL库失败的原因

PIL简介 PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,但API却非常简单易用. 最近在写一些Python爬虫时需要用到PIL这个图像处理库,但是发现使用pip无法安装,同之前在deepin上报错一致,报错如下: 大致的意思是没有符合当前环境的PIL版本,从网上查了查相关的教程资料,发现可以通过安装Pillow来替代. pip install pillow 网上查到一个资料说是因为官网只提供32位系统的安装...(待我

快乐python 零基础也能P图 —— PIL库

Python PIL PIL (Python Image Library) 库是Python 语言的一个第三方库,PIL库支持图像存储.显示和处理,能够处理几乎所有格式的图片. 一.PIL库简介 1. PIL库主要有2个方面的功能: (1) 图像归档:对图像进行批处理.生产图像预览.图像格式转换等. (2) 图像处理:图像基本处理.像素处理.颜色处理等. 2. PIL拥有多个类,此处就其中的Image类.ImageFilter类.ImageEnhance类做简单介绍. 二.安装库函数 pip i