作者:没有结果的爱请你收好 | 来源:互联网 | 2024-12-22 17:13
批量处理图片尺寸调整
在处理大量图像时,常常需要对不同规格的图片进行统一调整,以适应特定的应用需求,如打印或网络识别。以下是使用Python批量处理图片尺寸调整的方法:
批量放大图片
对于某些应用场景,如提高图像识别率,适当放大图片可以带来更好的效果。以下代码展示了如何批量放大指定目录中的图片:
import os
from PIL import Image
def get_image_list(path):
return [os.path.join(path, f) for f in os.listdir(path) if f.endswith(('.jpg', '.png', '.bmp'))]
def resize_images(directory, scale_factor=2):
images = get_image_list(directory)
for img_path in images:
print(f"Processing: {img_path}")
with Image.open(img_path) as img:
width, height = img.size
new_size = (width * scale_factor, height * scale_factor)
resized_img = img.resize(new_size, Image.ANTIALIAS)
resized_img.save(img_path.replace('.jpg', '_resized.jpg'))
if __name__ == '__main__':
resize_images("F:\桌面\test")
等比例缩放图片
有时需要将图片等比例缩放到特定尺寸,例如从n*n像素缩小到30*30像素。以下是具体步骤:
- 确保安装了Pillow库:
pip install pillow
- 单张图片缩放:
from PIL import Image
img = Image.open("2.png")
out = img.resize((30, 30), Image.ANTIALIAS)
out.save("2_resized.png")
- 批量处理多文件夹下的图片:
import os
from PIL import Image
path_target = "E:\data_eg\lip_train"
for root, dirs, files in os.walk(path_target):
for file in files:
if file.endswith(('.jpg', '.png', '.bmp')):
file_path = os.path.join(root, file)
print(f"Processing: {file_path}")
with Image.open(file_path) as img:
out = img.resize((30, 30), Image.ANTIALIAS)
out.save(file_path.replace('.jpg', '_resized.jpg'))
总结
通过上述方法,我们可以轻松地使用Python对大批量图片进行尺寸调整,无论是放大还是等比例缩放,都能满足不同的应用需求。