图片处理-Python图片处理函数的使用方式
Python作为一门高级编程语言,在图像处理领域表现优异。Python语言拥有众多的图像处理函数和库,可以进行图像的读取、处理、保存等操作。本文将深入介绍Python图片处理函数的使用方式。
一、Python图片处理函数的引入
Python中有三个可用的图像处理库:Python Image Library(PIL)、Python OpenCV(OpenCV)和Python scikit-image(skimage)。这三个库都是开源的,并且Python和画图库结合得非常紧密。在这三个库中,PIL是最常用的一种。
PIL库是Python中很常用的图像处理库,它需要通过pip安装,使用方式非常简单,只需要导入Image即可。例如:
from PIL import Image
上述代码会导入PIL库中的Image模块,使得我们可以使用PIL库中的图像处理方法。
二、Python图片处理函数的使用
1. 图像读取
在PIL库中,可以使用Image.open()方法读取图片。具体方法如下所示:
from PIL import Image
im = Image.open('image.png')
在上面的例子中,'image.png'是待读取的图片文件名,代码调用Image模块中的open方法并传入文件路径参数,就可以读取图片文件并返回一个Image对象im。
2. 图像显示
图像读取后,我们可以使用Image.show()方法将其显示在屏幕上。如下所示:
im.show()
3. 图像的缩放
PIL库中的图像缩放操作需要使用Image.resize()方法完成,如下所示:
im = im.resize((width, height))
其中,width和height是需要缩放到的大小。
4. 图像的剪裁
PIL库中的图像剪裁操作需要使用Image.crop()方法完成。具体的使用方法如下所示:
im = im.crop((left, top, right, bottom))
其中,(left, top, right, bottom)是需要剪裁的区域的左上角和右下角的坐标。
5. 图像的旋转
PIL库中的图像旋转操作需要使用Image.rotate()方法完成。具体的旋转角度可以自己设置,如下所示:
im = im.rotate(angle)
其中,angle是需要旋转的角度。
6. 图像灰度化
图像灰度化是将图像通道变为灰度的处理方法。在PIL库中,可以使用Image.convert()方法实现。具体代码如下所示:
im = im.convert('L')
其中,'L'是将图像通道变为灰度。
7. 图像的二值化
图像二值化就是将图像变成黑白两色的处理方法。在PIL库中,可以使用Image.point()方法完成该操作。
im = im.point(lambda x: 0 if x < 128 else 255)
在上述代码中,lambda表达式的作用是找到阈值中心值,然后将小于阈值中心值的像素点变为黑色,将大于阈值中心值的像素点变为白色。
8. 图像的保存
PIL库中的图像保存操作需要使用Image.save()方法完成。具体代码如下所示:
im.save('new_image.png')
其中,'new_image.png'是保存的文件名。
三、Python图片处理函数实例
假如我们现在有一张图片,它的路径是'/Users/user/Desktop/image.jpg',现在我们需要将它进行缩放、剪裁、旋转和灰度化等操作,然后保存成新的文件'/Users/user/Desktop/new_image.jpg'。下面就展示了针对该需求的完整代码:
from PIL import Image
# 图片读取
im = Image.open('/Users/user/Desktop/image.jpg')
# 图片缩放
width, height = im.size
im = im.resize((int(width * 0.5), int(height * 0.5)))
# 图片剪裁
im = im.crop((100, 100, width - 100, height - 100))
# 图片旋转
im = im.rotate(45)
# 图片灰度化
im = im.convert('L')
# 图片二值化
im = im.point(lambda x: 0 if x < 128 else 255)
# 图片显示
im.show()
# 图片保存
im.save('/Users/user/Desktop/new_image.jpg')
上述代码通过PIL库中的Image模块实现了图片缩放、剪裁、旋转、灰度化和二值化等图像处理操作。其中,im.size获取原图尺寸,im.resize将原图缩小为原来尺寸的0.5倍,im.crop剪裁出正中间的部分,im.rotate旋转45度,im.convert将图像通道变为灰度,im.point对图像进行二值化操作。最后,im.show()可以在屏幕上显示处理后的图像,并且保存在'/Users/user/Desktop/new_image.jpg'的文件路径中。
四、总结
PIL库是Python实现图像处理功能必备的库之一,本文着重介绍了PIL库中的Image模块,例如图像读取、显示、缩放、剪裁、旋转、灰度化、二值化和保存等基本操作。希望本文能够帮助公众更好地学习和使用Python图像处理库。
