博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 图像处理
阅读量:6804 次
发布时间:2019-06-26

本文共 1605 字,大约阅读时间需要 5 分钟。

Pillow是Python里的图像处理库(PIL:Python Image Library),提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等。

颜色与RGBA值

计算机通常将图像表示为RGB值,或者再加上alpha值(通透度,透明度),称为RGBA值。在Pillow中,RGBA的值表示为由4个整数组成的元组,分别是R、G、B、A。整数的范围0~255。RGB全0就可以表示黑色,全255代表黑色。可以猜测(255, 0, 0, 255)代表红色,因为R分量最大,G、B分量为0,所以呈现出来是红色。但是当alpha值为0时,无论是什么颜色,该颜色都不可见,可以理解为透明。
from PIL import ImageColor
print(ImageColor.getcolor('red', 'RGBA'))
#也可以只以RBG的方式查看
print(ImageColor.getcolor('black', 'RGB'))

图像的坐标表示

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

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

使用Pillow操作图像

from PIL import Image

im_path = r'F:\Jupyter Notebook\csv_time_datetime_PIL\rabbit.jpg'

im = Image.open(im_path)
width, height = im.size
#宽高
print(im.size, width, height)
#格式,以及格式的详细描述
print(im.format, im.format_description)

im.save(r'C:\Users\Administrator\Desktop\rabbit_copy.jpg')

im.show()

im.size返回一个元组,分别是宽和高。show()方法会调用系统默认图像查看软件,打开并显示。im.format可查看图像的格式。save()可保存处理后的图片,如果未经处理,保存后的图像占用的空间(字节数)一般也与原图像不一样,可能经过了压缩。

裁剪图像

Image有个crop()方法接收一个矩形区域元组(上面有提到)。返回一个新的Image对象,是裁剪后的图像,对原图没有影响。

im = Image.open(im_path)

cropedIm = im.crop((700, 100, 1200, 1000))
cropedIm.save(r'C:\Users\Administrator\Desktop\cropped.png')

调整图像的大小

resize方法返回指定宽高度的新Image对象,接受一个含有宽高的元组作为参数。宽高的值得是整数。

im = Image.open(im_path)

width, height = im.size
resizedIm = im.resize((width, height+(1920-1080)))
resizedIm.save(r'C:\Users\Administrator\Desktop\resize.png')

转载于:https://blog.51cto.com/loufeng/2331212

你可能感兴趣的文章
引用计数
查看>>
svn -- svn简介
查看>>
常存敬畏之心
查看>>
AgileEAS.NET平台开发Step By Step系列-药店系统-索引
查看>>
基于邻接表的新顶点的增加
查看>>
1118 Birds in Forest (25 分)
查看>>
追逐心目中的那个Ta
查看>>
【Spiral Matrix】cpp
查看>>
使用sphinx索引mysql数据
查看>>
视频连续播放
查看>>
C# 中的委托和事件(转)
查看>>
使用NSOperation和NSOperationQueue启动多线程
查看>>
关于在UITableViewController页面添加UINavigationBar的方法
查看>>
技术猿面试经
查看>>
C# 查看系统进程
查看>>
C#生成漂亮验证码完整代码类
查看>>
pollard_rho 算法进行质因数分解
查看>>
VS2008 连接TFS2012
查看>>
学习进度表(第六周)
查看>>
TCP/IP四层模型与OSI七层模型
查看>>