【图像去噪】基于BM3D算法实现图像去噪matlab代码
1 简介BM3D算法借鉴了非局部均值(NL-Means)方法的非局部块匹配思想,在此基础上,将图像相似块堆叠成三维矩阵后进行协同滤波处理,再将处理结果聚合到原图像块的位置。BM3D算法由两个大的步骤组成,即初步估计和最终估计阶段,每一阶段又分别包含三个部分:块匹配、协同滤波和聚合。2 部分代码clearall;clc;pauseTime=1;filePaths='cameraman256.png
·
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的声呐图像去噪算法参数分析.".

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