denoise0615.m
上传用户:lcj80317
上传日期:2007-01-26
资源大小:625k
文件大小:4k
- % 所有实验结果汇总
- I = imread('lena.png'); % 读入图像
- X = im2double(I); % 转为双精度类型
- % x = noise(X, 'gaussian', 0.005); % 添加噪声 高斯噪声 方差 0.005
- x = noise(X, 'gaussian', 0.01); % 添加噪声 高斯噪声 方差 0.01
- % x = noise(X, 'guassian', 0.02); % 高斯噪声 方差 0.02
- % x = noise(X, 'salt & pepper', 0.02); % 椒盐噪声 密度 0.02
- % x = noise(X, 'salt & pepper', 0.05); % 椒盐噪声 密度 0.05
- [C, S] = wavedec2(x, 2, 'sym4');
- thr = Donoho(x); % 计算Donoho全局阈值
- thr_lvd = Birge_Massart(C, S); % 计算Bige-Massa策略阈值
- alpha = 0.5;
- % 去噪 2层分解 sym4 小波--------------------------------------------------------
- x_soft = wdenoise(x, 'gbl', 's', thr, 'sym4', 2); % 软阈值方法 Donoho 全局阈值
- x_hard = wdenoise(x, 'gbl', 'h', thr, 'sym4', 2); % 硬阈值方法 Donoho 全局阈值
- x_soft_lvd = wdenoise(x, 'lvd', 's', thr_lvd, 'sym4', 2); % 软阈值方法 Birge-Massart策略 计算的阈值
- x_hard_lvd = wdenoise(x, 'lvd', 'h', thr_lvd, 'sym4', 2); % 硬阈值方法 Birge-Massart策略 计算的阈值
- x1 = den1(x, 'sym4', 2, thr); % 半软阈值 原始方法
- x1_5 = den1_5_1(x, 'sym4', 2, thr, 0.5*thr); % 半软阈值 + 均值滤波
- x1_9 = den1_9(x, 'sym4', 2, thr, 0.5*thr); % 半软阈值 + 指数衰减
- x1_10 = den1_10(x, 'sym4', 2, thr, 0.5*thr); % 半软阈值 + 再次进行小波阈值去噪
- x2 = den2(x, 'sym4', 2, thr, 0.4); % 软硬阈值的改进方法
- x3 = den3(x, 'sym4', 2, thr, 5); % 广义小波阈值函数
- x4 = den4(x, 'sym4', 2); % 自适应特征阈值
- % 计算峰值信噪比--------------------------------------------------------------
- psnr_soft = PSNR(x_soft, X) % Donoho公式 软阈值
- psnr_hard = PSNR(x_hard, X) % Donoho公式 硬阈值
- psnr_soft_lvd = PSNR(x_soft_lvd, X) % Birge-Massart策略 软阈值
- psnr_hard_lvd = PSNR(x_hard_lvd, X) % Birge-Massart策略 硬阈值
- psnr1 = PSNR(x1, X) % 半软阈值
- psnr1_5 = PSNR(x1_5, X) % 半软阈值 + 均值滤波
- psnr1_9 = PSNR(x1_9, X) % 半软阈值 指数衰减
- psnr1_10 = PSNR(x1_10, X) % 半软阈值 再次进行小波阈值去噪
- psnr2 = PSNR(x2, X) % 软硬阈值的改进方法
- psnr3 = PSNR(x3, X) % 广义小波阈值函数
- psnr4 = PSNR(x4, X) % 自适应特征阈值
- % 显示图像---------------------------------------------------------------------
- figure; imshow(x_soft); title('软阈值方法 Donoho 全局阈值');
- figure; imshow(x_hard); title('硬阈值方法 Donoho 全局阈值');
- figure; imshow(x_soft_lvd); title('软阈值方法 Birge-Massart策略');
- figure; imshow(x_hard_lvd); title('硬阈值方法 Birge-Massart策略');
- figure; imshow(x1); title('半软阈值方法');
- figure; imshow(x1_5); title('半软阈值方法 线性衰减');
- figure; imshow(x1_9); title('半软阈值方法 指数衰减');
- figure; imshow(x1_10); title('半软阈值方法 再次进行小波去噪');
- figure; imshow(x2); title('软硬阈值函数的改进方法');
- figure; imshow(x3); title('广义小波阈值函数');
- figure; imshow(x4); title('自适应特征阈值');
- % 非小波方法去噪------------------------------------------------------------------
- f = ones(3);
- x_mean1 = meanfilter(x,f); % 均值滤波
- x_med1 = medfilter(x, f); % 中值滤波
- % 计算峰值信噪比
- psnr_mean1 = PSNR(x_mean1, X)
- psnr_med1 = PSNR(x_med1, X)
- figure; imshow(x_mean1);title('均值滤波1');
- figure; imshow(x_med1); title('中值滤波1');