猫狗分类识别【图像预处理】⑤二值化

一、依赖库

pip install opencv-python

二、二值化说明

在这个脚本中,我们假设去噪后的图像已经是灰度图像。如果去噪后的图像是彩色图像,需要先将其转换为灰度图像,
可以使用cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)来实现。

cv2.threshold函数用于进行二值化操作。
它接受四个参数:输入图像、阈值、最大值(通常设置为255,表示白色)和二值化类型(在这个例子中使用cv2.THRESH_BINARY)。
函数返回两个值:第一个是用于二值化的实际阈值(在这个例子中我们不需要,所以使用_来忽略它),第二个是二值化后的图像。

最后,使用cv2.imwrite函数将二值化后的图像保存到指定的文件夹中。

三、二值化实现

import os

import cv2

# 设置去噪后的图像文件夹路径和二值化后的图像保存文件夹路径
denoised_images_folder = "imgs4/"  # 替换为去噪后图像文件夹的实际路径
binarized_images_folder = "imgs5/"  # 二值化后图像保存文件夹路径

# 确保二值化后的图像文件夹存在
if not os.path.exists(binarized_images_folder):
    os.makedirs(binarized_images_folder)

# 设置二值化阈值
threshold_value = 128  # 你可以根据实际情况调整这个阈值

# 遍历去噪后的图像文件夹中的所有图像文件
for filename in os.listdir(denoised_images_folder):
    if filename.endswith(".jpg") or filename.endswith(
        ".png"
    ):  # 根据需要添加其他图像格式
        # 读取去噪后的图像
        image_path = os.path.join(denoised_images_folder, filename)
        # 假设去噪后的图像是灰度图像
        image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
        # 对图像进行二值化操作
        _, binarized_image = cv2.threshold(
            image, threshold_value, 255, cv2.THRESH_BINARY
        )

        # 保存二值化后的图像到新的文件夹
        output_path = os.path.join(binarized_images_folder, filename)
        cv2.imwrite(output_path, binarized_image)
        print(f"Binarized and saved {filename} to {output_path}")

四、二值结果

二值前:

二值后:

单图对比(前后):

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

灰灰老师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值