1 简介
图像去噪一直是图像处理问题中一个重要的备受关注的问题,降质图像对于图像的进一步应用造成了很大局限性.从数学角度上来讲,图像去噪是一个反问题,对于含有模糊核的图像处理而言更是一个不适定的反问题,目前解决反问题的最主要且行之有效的方法便是正则化方法.正则化方法的主要思想是引入逼近原不适定问题算子的正则化算子进而逼近原不适定问题的解,即通过正则化方法的求出的解是唯一的,存在的和稳定的且是原反问题的一个很好的逼近.
2 部分代码
%%%%梯度为0直接求解四种正则%%%%%%clear all;close all;x0 = double(imread('groundtruth\monarch.tif')); %导入groundtruthg0 = double(imread('degraded\monarch_n_0.1.tif')); %导入含噪图像g0k = fspecial('gaussian',19,2);%给定高斯模糊核 lamda = 0.8; %正则化系数0.8[row column] = size(g0); %获取图像维度%图像二维傅里叶变换离散化K = fft2(k,row,column); %高斯核G = fft2(g0); %含噪图像%差分矩阵l1=[0 0 0; -1 1 0; 0 0 0];l2=[0 -1 0; 0 1 0; 0 0 0]; %傅里叶变换为频域530*530的矩阵Lx = fft2(l1,row,column); Ly = fft2(l2,row,column);%%%%%%%%%%使用二维傅里叶变换和梯度为零直接求解四种正则%%%%%%%%%%%L1正则: %x_iteration = ifft2((K'.*G-lamda)./(K'.*K));%L2正则:%x_iteration = ifft2(((K'.*G)./(K'.*K+2*lamda));%TV正则:%x_iteration = ifft2((K'.*G-lamda*Lx'-lamba*Ly')./(K'.*K));%TV-L2正则: x_iteration = ifft2((K'.*G)./(K'.*K-2*lamda*(Lx.^2)-2*lamda*(Ly.^2)));%%%%%%%%%%%显示重建图片%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%figure; colormap gray; %灰度化subplot(221); image(x0); title('GroundTruth');subplot(222); imagesc(g0); title('Degrade:0.1');subplot(224);imagesc(x_iteration); title('TV denoising:0.1');%%%%%%%%%%%%指标计算%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[aa,bb] = size(x0);d_p = 9; %避免边界效应影响评估,去掉重建出来外面的一圈img1 = x_iteration(d_p:aa-d_p+1,d_p:bb-d_p+1); %重建图片img2 = x0(d_p:aa-d_p+1,d_p:bb-d_p+1); %groundtruthpsnr_result = psnr(img1,img2)[mssim, ~] = ssim_index(img1,img2)
3 仿真结果
4 参考文献
[1]李青青. 基于正则化方法的图像去噪模型的研究[D]. 武汉理工大学, 2013.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。