安装

pip install pillow

Image类

可以说是(PIL:Python Image Library)里最重要的一个类了,该类存在于同名的模块中。可以通过以下几种方式实例化:从文件中读取图片,处理其他图片得到,或者直接创建一个图片。

使用open()函数可以从文件加载图像

例如:

图片1.png

from PIL import Image

img = Image.open("C:/Users/15338/Pictures/Saved Pictures/dog.jpg")

print(img.format, img.size[0], img.size, img.mode)

JPEG 353 (353, 409) RGB

format 这个属性标识了图像来源。如果图像不是从文件读取它的值就是None。size属性是一个二元tuple,包含width和height(宽度和高度,单位都是px)。 mode 属性定义了图像bands的数量和名称,以及像素类型和深度,“RGB” 表示真彩色图像。

图片的坐标表示

图像中左上角是坐标原点(0, 0),这和平常数学里的坐标系不太一样。这样定义的坐标系意味着,X轴是从左到右增长的,而Y轴是从上到下增长。

在Pillow中如何使用上述定义的坐标系表示一块矩形区域?许多函数或方法要求提供一个矩形元组参数。元组参数包含四个值,分别代表矩形四条边的距离X轴或者Y轴的距离。顺序是(左,顶,右,底)。右和底坐标稍微特殊,表示直到但不包括。可以理解为[左, 右)和[顶, 底)这样左闭右开的区间。比如(3, 2, 8, 9)就表示了横坐标范围[3, 7);纵坐标范围[2, 8)的矩形区域。

图片处理

图片裁剪

cropedImg = img.crop((100, 0, 300, 200))

cropedImg.save(r'C:/Users/15338/Pictures/Saved Pictures/cropdog.jpg')

cropedImg.show()

图片2.png

show()方法会调用系统默认图像查看软件,打开并显示。save()可保存处理后的图片,如果未经处理,保存后的图像占用的空间(字节数)一般也与原图像不一样,可能经过了压缩。

粘贴

img.paste(cropedImg, (0, 0))

img.show()

图片3.png

这如果之后还会用到原图的信息,由于信息被改变就很麻烦。所以paste前最好使用copy()复制一个副本,在此副本操作,不会影响到原图信息。

几何变换

img.rotate(90).save('C:/Users/15338/Pictures/Saved Pictures/rotate90.jpg')

逆时针旋转

图片4.png

img.transpose(Image.FLIP_LEFT_RIGHT).save(r'C:/Users/15338/Pictures/Saved Pictures/transepose_lr.jpg')

img.transpose(Image.FLIP_TOP_BOTTOM).save(r'C:/Users/15338/Pictures/Saved Pictures/transepose_tb.jpg')

图像的镜面翻转。transpose()函数可以实现,必须传入Image.FLIP_LEFT_RIGHT或者Image.FLIP_TOP_BOTTOM,第一个是水平翻转,第二个是垂直翻转。

图片5.png

颜色空间变换

convert()函数

gray = img.convert("L")

gray.show()

图片6.png

其他模块

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

ImageDraw,ImageFont

from PIL import Image, ImageDraw, ImageFont

img = Image.open(r'C:\Users\15338\Pictures\Saved Pictures\dog.jpg')

draw = ImageDraw.Draw(img)

text = 'HelloWorld'

Font = ImageFont.truetype("C:\Windows\Fonts\SHOWG.TTF",48)

draw.text([5,30],text,"red", font=Font)

img.save(r'C:\Users\15338\Pictures\Saved Pictures\dog.jpg')

图片7.png

生成随机字母验证码

from PIL import Image, ImageDraw, ImageFont, ImageFilter

import random

# 随机字母:

def rndChar():

return chr(random.randint(65, 90))

# 随机颜色1:

def rndColor():

return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))

# 随机颜色2:

def rndColor2():

return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))

# 240 x 60:

width = 60 * 4

height = 60

image = Image.new('RGB', (width, height), (255, 255, 255))

# 创建Font对象:

font = ImageFont.truetype('C:\Windows\Fonts\SHOWG.TTF', 36)

# 创建Draw对象:

draw = ImageDraw.Draw(image)

# 填充每个像素:

for x in range(width):

for y in range(height):

draw.point((x, y), fill=rndColor())

char = []

# 输出文字:

for t in range(4):

ch = rndChar()

char.append(ch)

draw.text((60 * t + 10, 10), ch, font=font, fill=rndColor2())

# 模糊:

image = image.filter(ImageFilter.BLUR)

image.save('D:\code.jpg', 'jpeg');

print(char)

================= RESTART: C:\Users\15338\Desktop\pillow.py =================

['C', 'M', 'N', 'T']

>>>

图片8.png

pilt图像处理_Python用Pillow(PIL)进行简单的图像操作相关推荐

  1. pillow python 划线_Python用Pillow(PIL)进行简单的图像操作

    Python用Pillow(PIL)进行简单的图像操作 颜色与RGBA值 计算机通常将图像表示为RGB值,或者再加上alpha值(通透度,透明度),称为RGBA值.在Pillow中,RGBA的值表示为 ...

  2. Python用Pillow(PIL)进行简单的图像操作(边缘增强、锐利、平滑等)

    图片缩放会造成图像的模糊,通过PIL库,我们可以将让图片边缘增强.锐利.平滑等从而让图片更加清晰,以下是代码,可以批处理图像 # coding: utf-8 from PIL import Image ...

  3. Python图像处理库Pillow(PIL)的简单使用

    一.PIL和Pillow图像处理库 图像库PIL(Python Image Library)是Python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像 ...

  4. python pillow环境_Python环境Pillow( PIL )图像处理工具使用解析

    前言 由于笔者近期的研究课题与图像后处理有关,需要通过图像处理工具对图像进行变换和处理,进而生成合适的训练图像数据.该系列文章即主要记录笔者在不同的环境下进行图像处理时常用的工具和库.在 Python ...

  5. 玩转Pillow(PIL)-Python将图像变为简笔画风格进行图像的简单操作

    目录 一.前言 (一)Pillow与PIL简介 (二)Pillow安装 二.实战 (一)将图像变为简笔画风格 (二)进行图像的简单操作 一.前言 (一)Pillow与PIL简介 1.PIL:PIL(P ...

  6. pillow是python的图像处理标准库_Python图像处理库:Pillow 初级教程

    Python图像处理库:Pillow 初级教程. Image类 Pillow中最重要的类就是Image,该类存在于同名的模块中.可以通过以下几种方式实例化:从文件中读取图片,处理其他图片得到,或者直接 ...

  7. python捷豹_图像处理基本工具——Python 环境下的 Pillow( PIL )

    由于笔者近期的研究课题与图像后处理有关,需要通过图像处理工具对图像进行变换和处理,进而生成合适的训练图像数据.该系列文章即主要记录笔者在不同的环境下进行图像处理时常用的工具和库.在 Python 环境 ...

  8. python 图像处理_Python中的十大图像处理工具

    文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 大数据文摘(BigDataDigest) 编译 | 张秋玥.小七.蒋宝尚 本文主要介绍了一些 ...

  9. Python的图像处理库(OpenCV,PIL,matplotlib和scikit-image)

      目前接触过的python图像处理代码涉及到多种的图像库,其中最常用的当属opencv和PIL.惭愧的是,以前只是拿来用,却一直迷惑为什么不同的代码会选择不同的图像库.这些图像库的联系和区别又是什么 ...

最新文章

  1. JavaScript权威指南(第六版) 初读笔记
  2. 关于windows的进程处理(七)
  3. 理解VMware虚拟机下网络连接的三种模式
  4. Codeforces 1196F K-th Path
  5. 暴走英雄坛html5游戏在线玩,暴走英雄坛h5
  6. 计算机专业技能考核方案,计算机专业技能课教学目标考核方案教程.doc
  7. 7-8 字符串字母大小写转换 (15 分)
  8. SpringCloudConfig配置中心读取本地配置文件
  9. 光盘安装 windowns 10 系统 与 Win10 英文系统修改成中文系统
  10. 项目管理的五个过程和九大知识领域
  11. 服务器组态文件在哪里,组态王怎么读取服务器数据库
  12. 中文论文检索证明怎么开_SCI论文检索后收录证明怎么开?
  13. JavaScript高级学习(三)
  14. 编程求E1+E2+…+E100的值​
  15. ONEDNS配置1:centos7DNS服务器forwarder配置
  16. DevOps—持续部署Ansible(二)
  17. 高颜值游戏蓝牙耳机初体验,2020新款低延迟蓝牙耳机测评推荐
  18. 敏捷项目管理的五个要素
  19. win2003服务器端口修改,Windows 2003修改3389端口的方法
  20. 代码管理工具之SVN

热门文章

  1. 程序员面试被问:公司遇难你愿意留下?网友:辉煌时升职吗
  2. IronRuby:元编程特性【method_missing】的使用
  3. 自动释放池autoreleasepool
  4. Redis的安装与配置
  5. c++ 学习笔记 c++ 引用C库注意点:#ifdef __cplusplus 倒底是什么意思?
  6. WebAPI返回数据类型解惑 以及怎样解决Extjs无法解析返回的xml
  7. 用JSP实现基于Web的RSS阅读器
  8. 图片滤镜算法原理简单讲解
  9. golang 接口类型 interface 简介
  10. python 找不到ssl模块问题 no module named _ssl