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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

3 仿真结果

【图像去噪】基于均值+中值+高通低通+巴特沃斯+PCA+小波+维纳滤波实现图像去噪含Matlab源码_d3

4 参考文献

[1]李明喜, and 吴鸿霞. "基于小波变换和中值滤波的图像去噪方法研究." 黄石理工学院学报 23.3(2007):16-19.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【图像去噪】基于均值+中值+高通低通+巴特沃斯+PCA+小波+维纳滤波实现图像去噪含Matlab源码_图像去噪_02