欢迎访问宙启技术站
智能推送

图片处理-Python图片处理函数的使用方式

发布时间:2023-06-10 12:33:06

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图像处理库。