python常用框架工具之pillow——华为AI学习笔记12
1. 简介
首先要介绍下PIL。它已经被默认为python平台上的图像处理标准库,功能强大,使用简单。但它只支持到python2.7,多年没人进行完整的维护,存在一些缺陷和兼容性问题。
pillow由一群志愿者在PIL基础上创作,不仅支持python2也支持python3,且增加了一些新功能。
1.1. 三大功能
-
图像处理功能:图像处理、像素处理、颜色处理、图像旋转、裁剪等
-
图像批处理:生成图像预览、图像格式转换等
-
其他:屏幕捕获、绘图、滤镜等
1.2. 常见模块
-
imageDraw
包括2D图像创建、注释、动态生成图形等
-
imageFilter
提供预定义的一组过滤器,像上面提到的滤镜
-
imageChops
包含了多个算术图像操作
-
imageEnhance
提供了一些图像增强的操作,比如增加对比度、增强亮度
-
imageWin
windows上图像操作
-
imageops
提供了很多封装好的方法,如图像翻转、增加曝光度等
2. pillow的图像操作
2.1. Image模块
2.1.1. open(img),读取,类似python中的open
2.1.2. eval(img,*args) 像素操作
2.1.3. new(mode,size,color=0),mode指RGB等
2.1.4. 图像的操作
2.1.4.1. format,查看格式,后缀名,format
2.1.4.2. size,尺寸
2.1.4.3. thumbnail,缩放,可以等比例缩放,缩放成缩略图
2.1.4.4. show,展示图像,打印出来的是内存地址。与matplotlib的show相似,但它展示后不会释放,可以多次展示
2.1.4.5. save,保存,保存为指定文件
2.1.4.6. transpose,翻转
2.1.4.7. crop,切割,可以按像素或者等比例切割
2.1.4.8. rotate,逆时针旋转
2.1.4.9. resize,重新定义大小,与numpy中的reshape相似。但reshape要求数据量不变,resize可以改变数据量
2.2. ImageOps模块
2.2.1. autocontrast
参数:图片,百分比,把最暗的转化为黑色,最亮的转化为白色,提高对比度
2.2.2. crop
从四周进行图片删除,默认四个方向等量,可以指定元组来自定义
2.2.3. deform
变形
2.2.4. expand
crop的逆操作,填充一些像素。border是要填充的量,值的话4方向等量,可以传元组
2.2.5. fit
将图像裁剪为指定尺寸,centering=(0.5,0.5),表示从中间开始裁剪
2.2.6. flip
垂直翻转图像
2.2.7. grayscale
转化为灰度图
彩色是三维的,有时候我们不需要,可转为灰度
2.2.8. mirror
水平翻转图像
2.2.9. solarize
像素值反转,指定阈值,大于阈值的反转。
比如阈值为0,100变成255-100
2.2.10. invert
所有的像素值都进行反转
比如0变255
2.3. ImageFilter模块
主要是滤镜
2.3.1. BoxBlur
图像模糊,给定半径,9宫格做均值达到模糊
2.3.2. GaussianBlur
高斯模糊,半径指模糊程度,0代表没有区别
2.3.3. CONTOUR
轮廓
2.3.3. Kernel
创建卷积核,神经网络中常用
有些版本只支持33或55
2.3.4. MedianFilter
创建中值滤波器
2.3.5. MinFilter
从给定窗口中选取最小值
2.3.6. MaxFilter
与MinFilter相反
2.4. ImageEnhance
2.4.1. Color
色彩平衡
2.4.2. Contrast
对比度增强
2.4.3. Brightness
调整亮度
2.4.4. Sharpness
调整清晰度
3. 绘图功能ImageDraw
3.1. 画图
ImageDraw.Draw(img,mode=None)
3.2. 椭圆
ellips(xy,fill=None,outline=None,width=0)
xy是起止点的坐标位置,outline是线,width是线的宽度
3.3. 直线
line(xy,fill=None,width=0,joint=None)
3.4. 多边形
polygon(xy,fill=None,outline=None)
- 点赞
- 收藏
- 关注作者
评论(0)