PIL模块图像处理
1.读取显示保存裁剪图像
"""
Created on Sat Feb 1 14:54:28 2020
@author: 陨星落云
"""
#%% 读取显示保存裁剪
from PIL import Image
img = Image.open("lena.jpg")
# 图像格式
print(img.format)
# 图像颜色空间
print(img.mode)
# 图像大小
print(img.size)
# 图像显示
img.show()
# 调整图像大小,容易导致图像变形
small_img = img.resize((100,50))
# 保存图像
small_img.save("test_lena.jpg")
# # 利用图像缩略图,调整图像大小,不会造成变形
# img.thumbnail((100,50))
# img.save("test_thumbnail_lena.jpg")
# 图像裁剪
cropped_img = img.crop((0,0,150,150))
cropped_img.show()
输出结果:
JPEG
RGB
(256, 256)
2.复制粘贴旋转镜像
#%% 复制粘贴旋转镜像
from PIL import Image
# 读取图像
img1 = Image.open("beautiful-beautiful-girl-bright-cute-301958.jpg")
img2 = Image.open("lena.jpg")
img2 = img2.resize((500,500))
# 图像复制
img1_copy = img1.copy()
# 将img2粘贴到img1中(500,500)的位置
img1_copy.paste(img2,(500,500))
img1_copy.save("img1_test.jpg")
# 图像旋转
img45 = img2.rotate(45,expand=True)
img45.save("img45.jpg")
# 图像镜像
img_flipLR = img2.transpose(Image.FLIP_LEFT_RIGHT)
img_flipLR.save("img_flipLR.jpg")
img_flipTB = img2.transpose(Image.FLIP_TOP_BOTTOM)
img_flipTB.save("img_fliptb.jpg")
输出结果:
3.彩色图像转灰度图像
#%%
from PIL import Image
img = Image.open("lena.jpg")
gray_img = img.convert("L")
gray_img.save("gray_img.jpg")
4.自动化处理
#%% RGB转灰度
from PIL import Image
import glob
path = "test/*.jpg"
for file in glob.glob(path):
print(file)
img = Image.open(file)
img1 = img.convert('L')
# img1.show()
img1.save(file[:-4]+'gray.jpg')