1 简介 基于均值+中值+高通低通+巴特沃斯+PCA+小波+维纳滤波七种算法实现图像去噪。 2 部分代码 function I=PCA_filtering(I0) [M,N] = size(I0); f = double(I0); bs = 16; %图像块尺寸 p = 30; %保留的维数
1 简介
基于均值+中值+高通低通+巴特沃斯+PCA+小波+维纳滤波七种算法实现图像去噪。
2 部分代码
function I=PCA_filtering(I0)[M,N] = size(I0);
f = double(I0);
bs = 16; %图像块尺寸
p = 30; %保留的维数
% PCA图像压缩
g = im2col(f, [bs bs], 'distinct'); %将图像块转换成列矢量表示
g_m = mean(g')'*ones(1,size(g,2)); %计算每个块的灰度均值
g = g - g_m;
covarianceMatrix = g*g'/size(g,2);%求协方差矩阵
[E, D] = eig(covarianceMatrix);
[~,order] = sort(diag(D),'descend');
E = E(:,order);
d = diag(D);
D = diag(d(order));
E_proj = E(:,1:p); %取最大的p个特征值所对应的特征矢量进行降维
g_proj = g'*E_proj; %从bs*bs维映射到p维
% 恢复图像
g_rec = g_proj*E_proj';
s = g_rec' + g_m;
s = col2im(s, [bs bs], [M N], 'distinct');
I=uint8(s);
end
3 仿真结果
4 参考文献
[1]李明喜, and 吴鸿霞. "基于小波变换和中值滤波的图像去噪方法研究." 黄石理工学院学报 23.3(2007):16-19.