【代码---利用代码调整图像大小并对其进行重新命名】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 代码
  • 详细解释
    • 导入OpenCV库和os模块:
    • 定义 resize_and_rename_images 函数:
    • 创建输出文件夹:
    • 初始化计数器 file_count:
    • 遍历输入文件夹中的图像文件:
    • 仅处理指定扩展名的图像文件:
    • 构建输入和输出路径,读取图像并调整大小:
    • 保存调整大小后的图像:
    • 打印信息并更新计数器:
    • 异常处理:
    • 主程序入口:
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

这段代码是一个用于调整图像大小并重新命名的脚本,主要利用了OpenCV库进行图像的读取、调整大小和保存。

下面是对代码的详细解释:


提示:以下是本篇文章正文内容,下面案例可供参考

代码

import cv2
import os


def resize_and_rename_images(input_folder, output_folder, target_size=(1280, 720)):
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    file_count = 0  # 添加计数器

    for filename in os.listdir(input_folder):
        if filename.endswith(('.jpg', '.jpeg', '.png')):
            input_path = os.path.join(input_folder, filename)

            # file_number = int(''.join(filter(str.isdigit, filename)))

            output_path = os.path.join(output_folder, f'{file_count:06d}.jpg')

            try:
                # Read image
                img = cv2.imread(input_path)

                # Resize image
                img_resized = cv2.resize(img, target_size)

                # Save resized image with new name
                cv2.imwrite(output_path, img_resized)

                print(f'{filename} resized and renamed to {output_path}')

                file_count += 1  # 更新计数器

            except Exception as e:
                print(f'Error processing {filename}: {e}')

if __name__ == "__main__":
    input_folder = "/media/l/us_lane_video/151"
    output_folder = "/media/l/us_lane_video/162"

    resize_and_rename_images(input_folder, output_folder)

详细解释

导入OpenCV库和os模块:

import cv2
import os

这里导入了OpenCV库和操作系统模块。

定义 resize_and_rename_images 函数:

def resize_and_rename_images(input_folder, output_folder, target_size=(1280, 720)):

这个函数接受三个参数:

input_folder: 包含原始图像的文件夹路径。
output_folder: 保存调整大小后的图像的文件夹路径。
target_size: 目标图像大小,默认为 (1280, 720)。

创建输出文件夹:

if not os.path.exists(output_folder):
    os.makedirs(output_folder)

如果输出文件夹不存在,则创建该文件夹。

初始化计数器 file_count:

file_count = 0

这个计数器用于为调整大小后的图像生成新的文件名。

遍历输入文件夹中的图像文件:

for filename in os.listdir(input_folder):

使用 os.listdir 遍历输入文件夹中的所有文件。

仅处理指定扩展名的图像文件:

if filename.endswith(('.jpg', '.jpeg', '.png')):

仅处理以 ‘.jpg’, ‘.jpeg’, 或 ‘.png’ 结尾的文件。

构建输入和输出路径,读取图像并调整大小:

input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, f'{file_count:06d}.jpg')

img = cv2.imread(input_path)
img_resized = cv2.resize(img, target_size)

构建输入和输出路径,读取图像并使用 cv2.resize 调整图像大小。

保存调整大小后的图像:

cv2.imwrite(output_path, img_resized)

使用 cv2.imwrite 保存调整大小后的图像。

打印信息并更新计数器:

print(f'{filename} resized and renamed to {output_path}')
file_count += 1

打印处理过程的信息,并更新计数器。

异常处理:

except Exception as e:
    print(f'Error processing {filename}: {e}')

如果在处理图像时发生异常,打印错误信息。

主程序入口:

if __name__ == "__main__":
    input_folder = "/media/l/us_lane_video/151"
    output_folder = "/media/l/us_lane_video/162"

    resize_and_rename_images(input_folder, output_folder)

在这个例子中,指定了输入文件夹和输出文件夹的路径,然后调用 resize_and_rename_images 函数进行图像处理。


总结

以上就是利用代码调整图像大小并对其进行重新命名,如有不足之处,还请大家斧正!!!

你可能感兴趣的:(人工智能,linux,笔记,python,opencv)