猫狗分类识别【图像预处理】④滤波去噪

一、依赖库

pip install opencv-python

二、滤波去噪说明

中值滤波和高斯滤波各有优缺点,哪种滤波方法更好取决于具体的应用场景和图像中的噪声类型。

中值滤波对于去除椒盐噪声(即黑白点噪声)特别有效,因为它通过取邻域像素的中值来替换中心像素的值,从而消除孤立的噪声点。
中值滤波还能较好地保留图像的边缘信息。
然而,中值滤波可能会导致图像细节的模糊,特别是在滤除噪声的同时也会模糊一些细微的图像特征。
此外,对于大尺寸图像,中值滤波的处理速度可能会较慢,因为需要对较大的邻域进行排序操作。

高斯滤波则适用于平滑图像并去除高斯噪声。它通过计算像素周围邻域的加权平均值来平滑图像,其中权重由高斯函数确定。
高斯滤波可以有效地平滑图像并去除高频噪声,同时较好地保留图像的边缘和细节。然而,高斯滤波也可能导致图像的边缘和细节变得模糊,影响图像的清晰度。
此外,高斯函数的标准差需要事先确定,这可能需要一些经验或实验来确定最佳值。

因此,在选择中值滤波还是高斯滤波时,需要根据具体的图像特点和去噪需求来决定。
如果图像中主要存在椒盐噪声,那么中值滤波可能是一个更好的选择;如果图像中主要存在高斯噪声或需要进行图像平滑处理,那么高斯滤波可能更为合适。

三、滤波去噪实现

import os

import cv2

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

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

# 遍历输入文件夹中的所有图像文件
for filename in os.listdir(input_folder):
    if filename.endswith(".jpg") or filename.endswith(
        ".png"
    ):  # 根据需要添加其他图像格式
        # 读取图像
        image_path = os.path.join(input_folder, filename)
        image = cv2.imread(image_path)

        # 应用中值滤波进行去噪
        # 你可以根据需要更改核大小,这里设置为5
        # denoised_image = cv2.medianBlur(image, 5)

        # 应用高斯滤波进行去噪
        # 你可以根据需要更改核大小和标准差
        # cv2.GaussianBlur(image, (5, 5), 0)函数被用来对图像进行高斯滤波。这里的(5, 5)是高斯核的大小,
        # 您可以根据需要调整这个值。第三个参数0表示让OpenCV自动计算高斯核的标准差(sigmaX和sigmaY),您也可以手动设置这个值。
        denoised_image = cv2.GaussianBlur(image, (5, 5), 0)

        # 保存去噪后的图像到输出文件夹
        output_path = os.path.join(output_folder, filename)
        cv2.imwrite(output_path, denoised_image)
        print(f"Processed 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、付费专栏及课程。

余额充值