前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python PIL图像处理开发极简教程

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

作者头像
OpenCV学堂
发布2019-08-09 16:57:20
9010
发布2019-08-09 16:57:20
举报

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

PIL安装与介绍

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

代码语言:javascript
复制
https://github.com/python-pillow/Pillow

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

代码语言:javascript
复制
pip install Pillow

常见操作代码

  • 导入开发包
代码语言:javascript
复制
from PIL import Image, ImageFilter, ImageOps
import numpy as np
  • 读取与显示图像
代码语言:javascript
复制
im = Image.open('D:/images/flower.png')
im.show()
  • 获取图像基本属性
代码语言:javascript
复制
print(im.format, im.size, im.mode)
  • 访问像素
代码语言:javascript
复制
print(im.getpixel((256, 256)))
  • 转为灰度图像
代码语言:javascript
复制
new_im = im.convert('L')
new_im.show()
  • 高斯模糊图像
代码语言:javascript
复制
new_im = im.filter(ImageFilter.GaussianBlur())
new_im.show()
  • 保存图像
代码语言:javascript
复制
new_im.save('D:/my_test.jpg', quality=95)
  • 创建512x512大小,蓝色图像
代码语言:javascript
复制
im = Image.new("RGB", (512, 512), (0, 0, 255))
im.show()
  • 填充直线、长方形与椭圆
代码语言:javascript
复制
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))
  • 像素取反操作
代码语言:javascript
复制
im = Image.open('D:/images/flower.png')
im_invert = ImageOps.invert(im)
im_invert.save('D:/flower_invert.png') 
  • 图像旋转操作
代码语言:javascript
复制
im = Image.open('D:/images/flower.png')
im_rotate = im.rotate(90)
im_rotate .save('D:/flower_rotate.png') 
  • 模糊
代码语言:javascript
复制
im = Image.open('D:/images/master.jpg')
blur = im.filter(ImageFilter.BLUR)
blur.show()
  • 轮廓提取
代码语言:javascript
复制
contour = im.filter(ImageFilter.CONTOUR)
contour.show()
  • 轧花效果
代码语言:javascript
复制
emboss = im.filter(ImageFilter.EMBOSS)
emboss.save('D:/emboss.png')
  • 边缘查找
代码语言:javascript
复制
edges = im.filter(ImageFilter.FIND_EDGES)
edges.save('D:/edges.png')
  • 图像边缘增强
代码语言:javascript
复制
edges_enhance = im.filter(ImageFilter.EDGE_ENHANCE)
edges_enhance.save('D:/edges_enhance.png')
  • 图像锐化增强
代码语言:javascript
复制
sharpen = im.filter(ImageFilter.SHARPEN)
sharpen.save('D:/sharpen.png')
  • USM锐化增强
代码语言:javascript
复制
usm = im.filter(ImageFilter.UnsharpMask)
usm.save('D:/usm.png')
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PIL安装与介绍
  • 常见操作代码
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档