python 图像处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 图像处理相关的知识,希望对你有一定的参考价值。

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 Notebookcsv_time_datetime_PIL abbit.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:UsersAdministratorDesktop abbit_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:UsersAdministratorDesktopcropped.png‘)

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

im = Image.open(im_path)
width, height = im.size
resizedIm = im.resize((width, height+(1920-1080)))
resizedIm.save(r‘C:UsersAdministratorDesktop esize.png‘)

以上是关于python 图像处理的主要内容,如果未能解决你的问题,请参考以下文章

Python 图像处理 OpenCV :图像平滑(滤波)处理

Python 图像处理 OpenCV :图像平滑(滤波)处理

Python 图像处理 OpenCV (14):图像金字塔

图像处理的Python问题,怎么解决

python都有哪些图像处理库

Python 图像处理 OpenCV :图像处理形态学开运算闭运算以及梯度运算