利用Python-OpenCV实现对目录中的所有png图片实现批量裁剪的代码
import os
import cv2
def crop_images(input_folder, output_folder, crop_x, crop_y, crop_width, crop_height):
# 检查输出文件夹是否存在,如果不存在则创建
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 获取输入文件夹中的所有PNG图片
png_files = [f for f in os.listdir(input_folder) if f.endswith('.png')]
for png_file in png_files:
# 构建输入和输出文件的完整路径
input_path = os.path.join(input_folder, png_file)
output_path = os.path.join(output_folder, png_file)
# 使用OpenCV加载图像
image = cv2.imread(input_path)
# 裁剪图像
cropped_image = image[crop_y:crop_y + crop_height, crop_x:crop_x + crop_width]
# 保存裁剪后的图像
cv2.imwrite(output_path, cropped_image)
if __name__ == "__main__":
# 输入文件夹路径,注意这里路径中不能有中文字符,原因是后面用到了os库,os库好像不支持中文字符
input_folder_path = r"E:\Temp\picinput"
# 输出文件夹路径,注意这里路径中不能有中文字符,原因是后面用到了os库,os库好像不支持中文字符
output_folder_path = r"E:\Temp\picoutput"
# 裁剪区域的坐标和尺寸
crop_x = 0 # crop_x代表要截取的区域的左上顶点的横坐标,可以用Windows自带的绘图工具获取坐标值
crop_y = 0 # crop_y代表要截取的区域的左上顶点的横坐标,可以用Windows自带的绘图工具获取坐标值
crop_width = 500 # crop_width代表要截取的区域的宽度
crop_height = 120 # crop_height代表要截取的区域的高度
# 执行裁剪
crop_images(input_folder_path, output_folder_path, crop_x, crop_y, crop_width, crop_height)