Python PIL图像处理开发极简教程

关注可学习更多的OpenCV教程。 问题或建议,请留言; 如果你觉得文章对你有帮助,欢迎转发支持

PIL安装与介绍

PIL是python image libaray缩写,是python语言的图像处理库,很多时候对于一些简单的图像处理,我们经常使用的是其中一个fork项目pillow,它的github地址如下:

https://github.com/python-pillow/Pillow

安装pillow只需要执行如下命令行即可

pip install Pillow

常见操作代码

  • 导入开发包
from PIL import Image, ImageFilter, ImageOps
import numpy as np
  • 读取与显示图像
im = Image.open('D:/images/flower.png')
im.show()
  • 获取图像基本属性
print(im.format, im.size, im.mode)
  • 访问像素
print(im.getpixel((256, 256)))
  • 转为灰度图像
new_im = im.convert('L')
new_im.show()
  • 高斯模糊图像
new_im = im.filter(ImageFilter.GaussianBlur())
new_im.show()
  • 保存图像
new_im.save('D:/my_test.jpg', quality=95)
  • 创建512x512大小,蓝色图像
im = Image.new("RGB", (512, 512), (0, 0, 255))
im.show()
  • 填充直线、长方形与椭圆
draw.line((0, im.height, im.width, 0), fill=(255, 0, 0), width=8)
draw.rectangle((100, 100, 200, 200), fill=(0, 255, 0))
draw.ellipse((250, 300, 450, 400), fill=(0, 255, 255))
  • 像素取反操作
im = Image.open('D:/images/flower.png')
im_invert = ImageOps.invert(im)
im_invert.save('D:/flower_invert.png') 
  • 图像旋转操作
im = Image.open('D:/images/flower.png')
im_rotate = im.rotate(90)
im_rotate .save('D:/flower_rotate.png') 
  • 模糊
im = Image.open('D:/images/master.jpg')
blur = im.filter(ImageFilter.BLUR)
blur.show()
  • 轮廓提取
contour = im.filter(ImageFilter.CONTOUR)
contour.show()
  • 轧花效果
emboss = im.filter(ImageFilter.EMBOSS)
emboss.save('D:/emboss.png')
  • 边缘查找
edges = im.filter(ImageFilter.FIND_EDGES)
edges.save('D:/edges.png')
  • 图像边缘增强
edges_enhance = im.filter(ImageFilter.EDGE_ENHANCE)
edges_enhance.save('D:/edges_enhance.png')
  • 图像锐化增强
sharpen = im.filter(ImageFilter.SHARPEN)
sharpen.save('D:/sharpen.png')
  • USM锐化增强
usm = im.filter(ImageFilter.UnsharpMask)
usm.save('D:/usm.png')

本文分享自微信公众号 - OpenCV学堂(CVSCHOOL)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券