在处理图像的过程中,通常会遇到需要批量裁剪图像的需求。手动操作不仅耗时,而且容易出错。为了解决这个问题,我们可以编写一个Python脚本,使用PIL(Python Imaging Library)和OpenCV来自动化这个过程。本文将详细介绍如何编写一个批量裁剪图像的脚本。
准备工作
在开始之前,请确保你的系统上已经安装了PIL和OpenCV库。如果尚未安装,可以使用以下命令进行安装:
pip install pillow opencv-python
脚本源码
以下是完整的Python脚本源码,该脚本可以读取指定文件夹中的图像文件,并按照设定的裁剪区域进行裁剪,最后将裁剪后的图像保存到另一个指定文件夹中。
from PIL import Image
import os
import cv2
# 源文件夹路径
srcPath = 'D:\\A-halcon\\Q10\\11\\'
# 目标文件夹路径
dstPath = 'D:\\A-halcon\\Q10\\112\\'
# 获取源文件夹中的所有文件列表
filelist = os.listdir(srcPath)
list1 = []
# 读取文件名及其后缀
for filename in filelist:
filename1 = os.path.splitext(filename)[1] # 读取文件后缀名
filename0 = os.path.splitext(filename)[0] # 读取文件名
list1.append(filename0 + filename1)
# 遍历所有文件进行裁剪
for i in range(0, len(list1)):
filea = str(srcPath + list1[i])
img_1 = Image.open(filea)
# 设置裁剪的位置,左上角和右下角的像素位置
crop_box = (1450, 2650, 2350, 3550)
# 裁剪图片
img_2 = img_1.crop(crop_box)
# 保存图片,如果图片模式是"P",则转换为"RGB"模式
if img_2.mode == "P":
img_2 = img_2.convert('RGB')
img_2.save(dstPath + list1[i])
print('已经截图成功')
使用说明
- 修改
srcPath
和dstPath
为你自己本地的文件夹路径。 - 根据实际情况调整
crop_box
的值,这是裁剪区域的左上角和右下角的像素坐标。 - 运行脚本,所有裁剪后的图像将保存在目标文件夹中。
总结
这个脚本可以帮助你轻松地批量裁剪图像,节省了大量的时间和精力。希望这个教程对你有所帮助。如果你有任何问题或建议,欢迎在评论区留言讨论。
感谢阅读!