clear,clc;
pauseTime = 1;
data_path = "..\Set12";
ext = ["*.jpg", "*.png", "*.jpeg"];
filePaths = [];
for i = 1 : length(ext)
filePaths = cat(1,filePaths, dir(fullfile(data_path,ext(i))));
end
noise_leval = [10,15,20,25,30,35,40,45,50,55,60,65,70];
for ii = 1:length(noise_leval)
PSNRs = zeros(1, length(filePaths));
SSIMs = zeros(1, length(filePaths));
sigma = noise_leval(ii);
for jj = 1:length(filePaths)
% 原图像
originImage = im2double(imread(filePaths(jj).name));
% 添加高斯噪声
imageWithNoise = single(originImage + sigma/255*randn(size(originImage)));
[rows, cols] = size(originImage);
y = imageWithNoise;
% 中值滤波算法
% 指定模板尺寸
boxSize = 3;
template = zeros(boxSize);
for i = 1:rows-boxSize+1
for j = 1:cols-boxSize+1
% 取模板内像素
template = imageWithNoise(i:i+(boxSize-1),j:j+(boxSize-1));
% 用中值替换模板中心点像素值
m = median(template(:));
y(i+(boxSize-1)/2,j+(boxSize-1)/2) = m;
end
end
% 计算psnr和ssim
PSNRs(jj) = psnr(im2uint8(originImage), im2uint8(y));
SSIMs(jj) = ssim(im2uint8(originImage), im2uint8(y));
imshow(cat(2,im2uint8(originImage),im2uint8(imageWithNoise),im2uint8(y)));
title(['sigma=',num2str(sigma),' ',filePaths(jj).name,' psnr=',num2str(PSNRs(jj),'%2.2f'),'dB',' ssim=',num2str(SSIMs(jj),'%2.4f')])
drawnow;
pause(pauseTime)
end
disp(["sigma:",sigma,"psnr:",mean(PSNRs),"ssim:", mean(SSIMs)]);
end
【图像去噪】基于中值滤波图像去噪(含SIGMA、PNSR、SSIM)附Matlab代码.zip
版权申诉
11 浏览量
2024-02-13
16:19:31
上传
评论
收藏 1.14MB ZIP 举报
Matlab科研辅导帮
- 粉丝: 2w+
- 资源: 7621
最新资源
- linux常用命令大全.zip
- CATIA入门操作案例-正八边异形带孔凸台绘制,等距点绘制正多边形,凸台绘制
- 大型代码语言模型的项目级提示生成pdf
- 纸片战争The War of paper.sb3
- testedtestedtested
- 基于C语言+STM32开发的智能门锁优秀项目+包含指纹识别、人脸识别、RFID解锁、密码解锁、蓝牙解锁功能+源码+项目解析
- 目标检测-智能零售柜商品检测数据集-5000张图-+对应VOC-COCO-YOLO三种格式标签+数据集划分脚本
- 目标检测-智能零售柜商品检测数据集-3000张图-+对应VOC-COCO-YOLO三种格式标签+数据集划分脚本
- 目标检测-智能零售柜商品检测数据集-1000张图-+对应VOC-COCO-YOLO三种格式标签+数据集划分脚本
- 蓝果小镇电商商城-带管理台-后台php完整版
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈