对于图像识别来说,大量的工作在于图像处理。只有处理效果好,才能得到很好的认可。所以,好的图像处理是识别的基础。在Python中,有一个优秀的图像处理框架,那就是PIL库。本文将介绍PIL图书馆的各种方法,并举例说明。
目录
前言PIL库概述图像类解析图像的创建图像的属性图像的转换处理摘要
前言
提示:以下是本文的主要内容。
PIL库概述
PIL图书馆支持图像存储、显示和处理。它可以处理几乎所有的图像格式,并可以完成
缩放、裁剪、叠加和添加线条、图像和文本到图像。
PIL图书馆可以满足图像存档和图像处理的功能要求:
(1)图像存档:图像的批量处理、图像预览生成、图像格式转换等。
(2)图像处理:基本图像处理、像素处理、颜色处理等。
Image类解析
图像的创建
在PIL中,任何图像文件都可以使用Image对象来表示Image类的图像读取和创建方法。
方法
形容
Image.open(文件名)
根据参数加载图像文件。
Image.new(模式、大小、颜色)
根据给定的参数创建一个新图像。
Image.open(StringIO。斯特林吉奥(缓冲区))
从字符串中获取图像。
Image.frombytes(模式、大小、数据)
基于像素数据创建图像
Image.verify()
检查图像文件的完整性并返回一个异常。
从PIL进口图片
im=image . open(r ' e:\ py charm \ Project \ pictures \ 2049675 . jpg ')
Im.show() //显示
基本如下图所示
图像的属性
属性
形容
图像.格式
标识图像格式或来源。如果图像不是从文件中读取的,则该值为None。
图像模式
图像颜色模式,' L '灰度图像,' RGB '真彩色图像,' CMYK '发布图像
图像.格式
标识图像格式或来源。如果图像不是从文件中读取的,则该值为None。
图像.大小
图像宽度和高度,以像素(px)为单位,返回值为tuple。
图像.调色板
调色板,它返回ImagePalette类型。
从PIL进口图片
im=image . open(r ' e:\ py charm \ Project \ pictures \ 2049675 . jpg ')
im.show()
打印(即时格式,即时大小)
#结果
# JPEG (1920,1080)
图像的转换
方法
形容
Image.save(文件名,格式)
将图像保存为文件名,格式为图片格式。
图像.转换(模式)
使用不同的参数将图像转换成新的模式。
Image.thumbnail(大小)
创建图像的缩略图,大小是缩略图大小的二元元组。
将jpg转换为png
从PIL进口图片
im=image . open(r ' e:\ py charm \ Project \ pictures \ 2049675 . jpg ')
打印(即时消息)
im . save(r ' e:\ py charm \ Project \ pictures \ 2049675 changed . png ')
im=image . open(r ' e:\ py charm \ Project \ pictures \ 2049675 changed . png ')
打印(即时消息)
im.show()
#结果
PIL。JpegImagePlugin.JpegImageFile图像模式=RGB大小=1920x1080 at0x1A8DE865F40
PIL。PngImagePlugin.PngImageFile图像模式=RGB大小=1920x1080 at0x1A8DE8D2E80
GIF图像提取。
对于GIF格式的动态文件,提取每帧图像并保存为文件。
从PIL进口图片
im=image . open(r ' e:\ py charm \ project \ pictures \ 21。GIF') #在GIF文件中读取
尝试:
im.save('picframe{:02d})。巴布亚新几内亚。format(im.tell()))
虽然正确:
im.seek(im.tell() 1) #帧的位置
im.save('picframe{:02d})。巴布亚新几内亚。format(im.tell()))
除了:
打印(“处理结束”)
结果
Tell()方法:返回当前帧的位置,从0开始计数。
极小的
从PIL进口图片
im=image . open(r ' e:\ py charm \ Project \ pictures \ 2050 074 . jpg ')
打印(即时消息)
im.thumbnail((128,99))
im.save('mm ',' JPEG ')
打印(即时消息)
im.show()
#结果
PIL。JpegImagePlugin.JpegImageFile图像模式=RGB大小=2757x2135 at0x238DFCD5DC0
PIL。JpegImagePlugin.JpegImageFile图像模式=RGB大小=128x99 at0x238DFCD5DC0
图像处理
1.image类可以对图像进行缩放和旋转,其中rotate()方法是用逆时针旋转的角度值做的。
旋转参数的图像。
方法
形容
Image.resize(大小)
调整图像大小以生成副本。
Image.rotate(角度)
按角度旋转图像以生成副本。
2.Image类可以独立操作RGB图像的每个像素或每个通道,split()
该方法可以提取RGB图像的每个颜色通道,merge()方法可以将每个独立的通道重新组合成一个新的图像。
方法
形容
Image.point(函数)
根据func函数,操作每个元素并返回图像的副本。
Image.split()
提取RGB图像的每个颜色通道并返回图像副本。
Image.merge(模式、波段)
合并通道,使用模式颜色,波段是新颜色的颜色通道。
Image.blend(im1,im2,alpha)
根据以下公式对两个图片im1和im2进行插值以生成新图像:im1 *(1.0-)im2 *。
图像的颜色交换
通过分离RGB图像的三个颜色通道,可以实现图像中的颜色交换。
从PIL进口图片
im=image . Open(r ' e:\ py charm \ project \ pictures \ 2050536 . jpg ')#打开文件
r,g,b=im.split() #获取RGB通道数据
New=g.point (lambda I: I * 0.9) #将G通道的颜色值改为原来的0.9倍。
New=b.point (lambda I: I 100) #选择B通道值小于100的像素。
OM=image.merge (im.mode,(r,newg,newb)) #将三个通道组合成一个新的图像。
om . save(r ' e:\ py charm \ project \ pictures \ aa . jpg ')#输出图片
om.show()
原图:
交换后
3.图像过滤和增强
PIL库的ImageFilter类和ImageEnhance类提供了10种过滤和增强图像的方法。
方法表示
形容
图像过滤器。虚化
图像的模糊效果
图像过滤器。轮廓
图像轮廓效果
图像过滤器。详述
图像细节效果
图像过滤器。边缘增强
图像的边缘增强效果
图像过滤器。边缘_增强_更多
基于图像阈值的边界增强效果
图像过滤器。装饰
图像的浮雕效果
图像过滤器。查找_边
图像的边界效应
图像过滤器。光滑的
图像平滑效果
图像过滤器。平滑_更多
图像的阈值平滑效果
图像过滤器。尖锐
图像的锐化效果
轮廓效应
从PIL进口图片
从PIL导入图像过滤器
im=image . open(r ' e:\ py charm \ Project \ pictures \ 2050558 . jpg ')
om=im.filter(ImageFilter。轮廓)
om.save('abc.jpg ')
om.show()
原图:
修改后:
4.四号。ImageEnhance类提供了更高级的图像增强需求,它提供了调整颜色程度、亮度、对比度、锐化等功能。
方法
形容
ImageEnhance.enhance(因子)
将选定属性的值增加因子倍。
图像增强。颜色(im)
调整图像的色彩平衡
图像增强。对比度(im)
调整图像的对比度。
图像增强。亮度(im)
调整图像的亮度
图像增强。锐度(im)
调整图像的清晰度
总结
提示:下面是这篇文章的摘要:
关于Python图像处理的PIL库的详细用法,本文到此结束。有关Python图像处理的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。