在MATLAB中读入lena图像,利用BM3D 和 DDID 算法进行图像去噪实验, 在一个窗口中显示原始图像和处理结果, 并进行评价,并给出MATLAB代码
时间: 2024-02-13 08:07:18 浏览: 65
好的,以下是MATLAB代码,需要先将lena图像放入当前工作目录中:
```matlab
% 读入lena图像
I = imread('lena.bmp');
% 添加高斯白噪声
sigma = 15;
J = imnoise(I,'gaussian',0,(sigma/255)^2);
% 使用BM3D算法进行去噪
[~,D] = BM3D(1,J,sigma);
K1 = D(:,:,1);
% 使用DDID算法进行去噪
param.sigma = sigma;
K2 = ddid(J,param);
% 显示图像
figure;
subplot(1,3,1);imshow(I);title('Original Image');
subplot(1,3,2);imshow(J);title('Noisy Image');
subplot(1,3,3);imshow(K1,[]);title('BM3D Result');
figure;
subplot(1,3,1);imshow(I);title('Original Image');
subplot(1,3,2);imshow(J);title('Noisy Image');
subplot(1,3,3);imshow(K2,[]);title('DDID Result');
% 评价结果
PSNR1 = psnr(I,K1);
SSIM1 = ssim(I,K1);
PSNR2 = psnr(I,K2);
SSIM2 = ssim(I,K2);
disp(['BM3D: PSNR = ' num2str(PSNR1) ', SSIM = ' num2str(SSIM1)]);
disp(['DDID: PSNR = ' num2str(PSNR2) ', SSIM = ' num2str(SSIM2)]);
```
需要先安装BM3D和DDID算法的MATLAB工具箱。运行代码后会显示原始图像、添加噪声后的图像和经过BM3D和DDID算法处理后的图像。同时,会输出两种算法的PSNR和SSIM评价指标。
阅读全文