猫狗分类识别【图像预处理】③图像灰度化处理

一、导入库

pip install opencv-python

二、灰度化处理过程

说明:无论前面的图像文件夹中的图像后缀是否统一,均可使用灰度化处理程序。

# 检查文件是否为图像文件(这里以.jpg、.jpeg、.png等为例)
if item.lower().endswith((".png", ".jpg", ".jpeg", ".tiff", ".bmp", ".gif")):

因为上述这部分代码已经包含了常规图像的后缀判断。但是,还是强烈推荐预先处理好图像后缀后再进行图像的其他预处理。统一后缀可以参考:统一图像后缀

import os

import cv2


def grayscale_folder_images(input_folder, output_folder):
    # 确保输出文件夹存在
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 遍历输入文件夹中的所有文件和文件夹
    for item in os.listdir(input_folder):
        input_path = os.path.join(input_folder, item)

        # 跳过.ipynb_checkpoints文件夹
        if item == ".ipynb_checkpoints":
            continue

        # 如果是文件夹,则递归处理
        if os.path.isdir(input_path):
            grayscale_folder_images(input_path, os.path.join(output_folder, item))
            continue

        output_path = os.path.join(output_folder, item)

        # 检查文件是否为图像文件(这里以.jpg、.jpeg、.png等为例)
        if item.lower().endswith((".png", ".jpg", ".jpeg", ".tiff", ".bmp", ".gif")):
            # 读取图像
            image = cv2.imread(input_path)
            if image is not None:
                # 将图像转换为灰度图
                gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
                # 保存灰度图像到输出文件夹
                cv2.imwrite(output_path, gray_image)
                print(f"Processed {item} to grayscale and saved to {output_path}")
            else:
                print(f"Failed to read image: {input_path}")
        else:
            print(f"Skipping non-image file: {item}")


# 设置输入和输出文件夹路径
input_folder = "imgs2/"  # 替换为你的输入文件夹路径
output_folder = "imgs3/"  # 替换为你的输出文件夹路径

# 调用函数处理图像
grayscale_folder_images(input_folder, output_folder)

三、处理结果

处理前:

处理后:

单图对比(前后):

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灰灰老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值