来一段matlab图像降噪代码
时间: 2023-09-17 22:13:09 浏览: 95
图像降噪Matlab代码
5星 · 资源好评率100%
以下是一个基于小波变换的图像降噪代码,使用了MATLAB的Wavelet Toolbox:
```matlab
% 读取图像
img = imread('noisy_image.jpg');
% 将图像转换成灰度图像
gray_img = rgb2gray(img);
% 将图像归一化到0-1之间
norm_img = double(gray_img) / 255;
% 使用小波变换进行降噪
% 选择小波类型和分解层数
wname = 'db4';
level = 4;
% 将图像进行小波分解
[C, S] = wavedec2(norm_img, level, wname);
% 计算小波系数的阈值
thr = wthrmngr('dw2ddenoLVL', C);
% 对小波系数进行软阈值处理
sorh = 's';
keepapp = 1;
denoised_C = wthresh(C, sorh, thr, keepapp);
% 将降噪后的小波系数重构成图像
denoised_img = waverec2(denoised_C, S, wname);
% 将图像的像素值归一化到0-255之间
denoised_img = uint8(denoised_img * 255);
% 显示原始图像和降噪后的图像
subplot(1, 2, 1);
imshow(gray_img);
title('Original Image');
subplot(1, 2, 2);
imshow(denoised_img);
title('Denoised Image');
```
阅读全文