图像批处理高斯滤波降噪+峰值信噪比计算

该博客介绍了如何使用Matlab实现针对不同强度高斯噪声的自适应高斯滤波器进行图像降噪。通过遍历多种噪声标准差,对图像进行滤波并计算PSNR,保存结果并展示降噪效果。getPSNR函数用于计算信噪比,以评估滤波性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

批量图像针对不同大小的高斯噪声滤波

1.简介

去噪方法:针对已知的图像及噪声强度(标准差分别为10,20,30,40,50,75,100),针对不同强度的高斯噪声采用自适应高斯滤波器对原图进行降噪,对于标准差较小的噪声选用低强度的高斯滤波,而标准差较大时则采用强度较高的滤波核进行降噪,所设计滤波器采用高斯滤波核同与原图进行卷积操作达到降噪目的。

2.实现

采用Matlab语言进行算法实现,并将滤波结果保存到原文件夹下,信噪比参数并入图像名字以便参考,算法实现如下:

name={'Lena','Monarch','House'};
D={'10','20','30','40','50','75','100'};
 
for i=1:length(name)
    for j=1:length(D)
        [name{i},D{j}]
        path=['testimages\\',[name{i},D{j}],'.png'];
        img=imread(path);
        sigma=str2num(D{j});
        W = fspecial('gaussian',[sigma,sigma],1); 
        result = imfilter(img, W,'conv');
        psnr=getPSNR(img,result);
        imwrite(result,['testimages\\',[name{i},D{j}],'-psnr-',num2str(psnr),'.png']);
    end
end
 
function [psnr]=getPSNR(src,dst)
    diff=src-dst;
    MSE= sum(diff(:).*diff(:))/prod(size(src));
    psnr = 10*log10(255^2/MSE);
end

3.效果:

在这里插入图片描述
在这里插入图片描述
求解PSNR公式,所设计滤波器降噪效果评价如下表:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

明月醉窗台

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

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

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

打赏作者

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

抵扣说明:

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

余额充值