下面是使用Pillow进行图像处理的攻略:
什么是Pillow
Pillow是Python图像处理的库,它支持的图片格式十分丰富,如JPEG、PNG、BMP、GIF、ICO、TIFF等。
安装Pillow
要安装Pillow,可以使用以下命令:
pip install Pillow
使用Pillow进行图像处理
打开图片
使用Pillow打开图片非常简单,只需要调用Image.open()
函数即可:
from PIL import Image
# 打开图片
img = Image.open('image.jpg')
img.show()
上面的代码会打开一个名为image.jpg的图片。
调整图片大小
调整图片大小可以使用resize()
方法。
from PIL import Image
# 打开图片
img = Image.open('image.jpg')
# 调整图片大小
resize_img = img.resize((400, 300), Image.ANTIALIAS)
resize_img.show()
其中,(400, 300)
表示调整后的图片大小,Image.ANTIALIAS
表示调整算法,这里使用了抗锯齿算法。
裁剪图片
使用crop()
方法裁剪图片。
from PIL import Image
# 打开图片
img = Image.open('image.jpg')
# 裁剪图片
crop_img = img.crop((100, 100, 400, 300))
crop_img.show()
其中,(100, 100, 400, 300)
表示裁剪的区域,前两个数字是左上角的坐标,后两个数字是右下角的坐标。
迭代像素
使用load()
方法可以迭代图片的像素值。
from PIL import Image
# 打开图片
img = Image.open('image.jpg')
# 迭代像素
pixels = img.load()
for i in range(img.size[0]):
for j in range(img.size[1]):
r, g, b = pixels[i, j]
# 对每个像素做处理
# ...
其中,img.size
返回了图片的大小,(img.size[0], img.size[1])
表示图片的宽和高。pixels[i, j]
表示获取坐标为(i, j)的像素点的RGB值,r、g、b表示分别为红、绿、蓝三色通道的值。
以上就是使用Pillow进行图像处理的主要内容。接下来,我再提供两个示例来说明如何实际应用:
示例1:切换黑白图片
from PIL import Image
# 打开图片
img = Image.open('image.jpg')
# 迭代像素
pixels = img.load()
for i in range(img.size[0]):
for j in range(img.size[1]):
color = pixels[i, j]
# 利用rgb的平均值计算灰度值,进而得出新的rgb值
r, g, b = (int(sum(color) / 3),) * 3
pixels[i, j] = (r, g, b)
img.show()
该示例中,我们首先打开了一张图片,然后进行了像素迭代,计算出每个像素的灰度值,最后将原有的RGB值替换为新的灰度RGB值,这样就得到了一张黑白图片。
示例2:利用像素点运算升亮整张图片
from PIL import Image
# 打开图片
img = Image.open('image.jpg')
# 迭代像素
pixels = img.load()
for i in range(img.size[0]):
for j in range(img.size[1]):
color = pixels[i, j]
r = color[0] + 50
g = color[1] + 50
b = color[2] + 50
pixels[i, j] = (r, g, b)
img.show()
该示例中,我们同样进行像素迭代,但是不同的是,我们对每个像素点进行了运算,将每个像素的RGB值的每个分量加上50,从而让整张图片升亮了50个单位。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python使用Pillow进行图像处理 - Python技术站