Python制作图像批量处理程序

本文介绍如何使用OpenCV和Python编写一个脚本来批量处理图像,将所有JPG文件转换为灰度并保存到指定输出目录。通过定义处理函数并遍历输入目录中的文件,实现图像处理的自动化。
摘要由CSDN通过智能技术生成

要使用OpenCV制作一个批量处理程序,您可以遵循以下步骤:

  1. 导入必要的库

    import cv2
    import os
    
  2. 定义处理函数: 创建一个处理函数,该函数接收图像路径和输出路径作为参数,并返回处理后的图像。

    def process_image(input_path, output_path):
        # 读取图像
        image = cv2.imread(input_path)
    
        # 在这里添加您的图像处理逻辑
        # 例如:灰度化
        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
        # 保存处理后的图像
        cv2.imwrite(output_path, gray)
    
  3. 获取图像列表: 遍历包含所有待处理图像的目录,获取它们的路径列表。

    input_directory = 'path/to/input/images'  # 输入目录路径
    output_directory = 'path/to/output/images'  # 输出目录路径
    
    # 确保输出目录存在
    if not os.path.exists(output_directory):
        os.makedirs(output_directory)
    
    # 获取所有图像文件
    image_files = [os.path.join(input_directory, f) for f in os.listdir(input_directory) if os.path.isfile(os.path.join(input_directory, f))]
    
  4. 执行批量处理: 遍历图像文件列表,并对每个文件调用处理函数。

    for image_file in image_files:
        # 获取输出文件的路径
        output_file = os.path.join(output_directory, os.path.basename(image_file).replace('.jpg', '_processed.jpg'))
    
        # 调用处理函数
        process_image(image_file, output_file)
    
  5. 完整代码: 将以上步骤组合起来,形成一个完整的小程序。

    import cv2
    import os
    
    def process_image(input_path, output_path):
        image = cv2.imread(input_path)
        # 在这里添加您的图像处理逻辑
        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
        cv2.imwrite(output_path, gray)
    
    input_directory = 'path/to/input/images'
    output_directory = 'path/to/output/images'
    
    if not os.path.exists(output_directory):
        os.makedirs(output_directory)
    
    image_files = [os.path.join(input_directory, f) for f in os.listdir(input_directory) if os.path.isfile(os.path.join(input_directory, f))]
    
    for image_file in image_files:
        output_file = os.path.join(output_directory, os.path.basename(image_file).replace('.jpg', '_processed.jpg'))
        process_image(image_file, output_file)
    
    print("Batch processing completed.")
    
  6. 运行脚本: 保存上述脚本为 .py 文件,并在命令行中运行它。确保替换 input_directoryoutput_directory 为实际的目录路径。

这个小程序将自动遍历指定输入目录中的所有图像文件,对每个文件执行定义的图像处理操作,并将处理后的图像保存到指定的输出目录中。您可以根据需要修改 process_image 函数中的处理逻辑,以执行不同的图像处理任务。

 

下面是一个使用Python和OpenCV库来批量处理图片的示例脚本。此脚本会遍历指定目录下的所有JPG图片,将它们转换为灰度图像,并保存到新的输出目录中。

import cv2
import os

# 定义图片处理函数
def convert_to_grayscale(input_path, output_path):
    # 读取图像
    image = cv2.imread(input_path)
    # 转换为灰度图像
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    # 保存处理后的图像
    cv2.imwrite(output_path, gray)

# 设置输入和输出目录
input_directory = 'path/to/input/images'
output_directory = 'path/to/output/images'

# 确保输出目录存在
if not os.path.exists(output_directory):
    os.makedirs(output_directory)

# 获取输入目录中所有JPG文件的列表
image_files = [f for f in os.listdir(input_directory) if f.endswith('.jpg')]

# 遍历所有图片文件并进行处理
for image_file in image_files:
    # 构造完整的输入和输出文件路径
    input_path = os.path.join(input_directory, image_file)
    output_path = os.path.join(output_directory, image_file.replace('.jpg', '_grayscale.jpg'))
    
    # 调用图片处理函数
    convert_to_grayscale(input_path, output_path)

print("所有图片已转换完成。")

在运行此脚本之前,请确保已经安装了OpenCV库。可以通过以下命令安装:

pip install opencv-python

然后,将脚本中的 input_directoryoutput_directory 变量替换为相应的输入和输出目录路径。运行脚本后,指定目录下所有的JPG图片都会被转换为灰度图像,并保存在输出目录中。

  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值