​1 简介

BM3D算法借鉴了非局部均值(NL-Means)方法的非局部块匹配思想,在此基础上,将图像相似块堆叠成三维矩阵后进行协同滤波处理,再将处理结果聚合到原图像块的位置。BM3D算法由两个大的步骤组成,即初步估计和最终估计阶段,每一阶段又分别包含三个部分:块匹配、协同滤波和聚合。

2 部分代码

clear all;clc ;

pauseTime = 1;
   filePaths = 'cameraman256.png';%%改文件名字就在这个,图片复制在这个目录就行
noise_leval = [10,15,20,25,30,35,40,45,50,55,60,65,70];

for i = 1:length(noise_leval)
   PSNRs = [];
   SSIMs = [];
   sigma = noise_leval(i);
   for j = 1:length(filePaths)
       y = imread(filePaths);
       if length(size(y)) > 2
           y = rgb2gray(y);
       end
       y = im2double(y);
       z = y + (sigma/255)*randn(size(y));
       % 生成噪声图像
       
      [PSNR,SSIM,y_est] = BM3D(y, z, sigma, 'np', 0);
       PSNRs(j) = PSNR;
       SSIMs(j) = SSIM;
   
       imshow(cat(2,im2uint8(y),im2uint8(z),im2uint8(y_est)));
       title([num2str(sigma),num2str(PSNR,'%2.2f'),'dB','   ',num2str(SSIMs(j),'%2.4f')])
       drawnow;
       pause(pauseTime)
   end
   disp(['sigma:', sigma,' psnr:', mean(PSNRs),' ssim:', mean(SSIMs)]);
end

3 仿真结果

4 参考文献

[1]郑建明, and 王志伟. "BM3D的声呐图像去噪算法参数分析.". 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐