matlab 图像去噪代码
时间: 2024-05-03 10:15:22 浏览: 110
根据提供的引用内容,以下是一个基于稀疏表示KSVD算法实现彩色图像去噪的Matlab代码的示例[^1]:
```matlab
% 读取彩色图像
image = imread('input_image.jpg');
% 将彩色图像转换为灰度图像
gray_image = rgb2gray(image);
% 添加高斯噪声
noisy_image = imnoise(gray_image, 'gaussian', 0, 0.01);
% 设置字典学习参数
params.blockSize = 8;
params.dictSize = 256;
params.trainnum = 400;
params.iternum = 10;
% 字典学习
[dict, sparsecode] = ksvd(noisy_image, params);
% 重构图像
reconstructed_image = dict * sparsecode;
% 计算峰值信噪比(PSNR)
psnr_value = psnr(reconstructed_image, gray_image);
% 显示去噪结果和PSNR值
figure;
subplot(1, 2, 1);
imshow(noisy_image);
title('Noisy Image');
subplot(1, 2, 2);
imshow(reconstructed_image);
title(['Denoised Image (PSNR: ', num2str(psnr_value), ' dB)']);
```
请注意,这只是一个示例代码,具体的图像去噪效果和参数设置可能需要根据实际情况进行调整。此外,为了运行该代码,您需要将输入图像替换为实际的图像文件,并确保您的Matlab环境中已经安装了相关的图像处理工具箱。
阅读全文