This paper discusses how to maintain more edge information in the process of image denoising. It is well known that in P M diffusion, noise at edges cannot be eliminated successfully and line like structures cannot be held well, while in coherence enhancing diffusion, false textures arise. Thus, a denoising method of jointing these two models comes out. First, a weighted model of combining P M diffusion with coherence enhancing diffusion is built, which emphasizes particularly on coherence enhancing diffusion at edges of an image while on P M diffusion at the other part. Then, how to select parameters in the model is analyzed. An adaptive parameter selection method in P M diffusion is achieved when the percent of the edge pixels in an image is given, and the experiential method to decide the parameters in coherence enhancing diffusion is proposed. And at last, the experimental results show that, compared with some conventional denoising methods, the proposed method can remove noise efficiently in images, keep line like structures well, and has higher peak signal to noise ratio.
% Main options fields :
% - Weickert_lambda (edge detection threshold)
% - final_time (PDE evolution time)
% Secondary options fields :
% - Weickert_choice ('cEED','cCED','EED','CED'. Choice of PDE)
% - Weickert_alpha (diffusion tensors condition number is <=1/alpha)
% - Weickert_m (exponent in Weickert's tensors construction)
% - noise_filter, feature_filter (for structure tensor construction)
% - rescale for unit maximum trace (rescale structure tensors, true by default)
% - max_diff_iter (max number of time steps, and diffusion tensor updates)
% - max_inner_iter (number of inner time steps, between diffusion tensor updates)
% - verbose (true or false)
% Remark on performance: On 'large' cases, such as the MRI below, computation time
% is dominated by the sparse matrix assembly "spmat(col,row,coef,n,n)".
% In case of need, consider the following optimized C++ implementation designed for
% the Insight Toolkit (ITK)
% J. Fehrenbach, J.-M. Mirebeau, L. Risser, S. Tobji,
% Anisotropic Diffusion in ITK, Insight Journal, 2015
% http://www.insight-journal.org/browse/publication/953
addpath('ToolBox');
addpath('ToolBox/AD-LBR');
addpath('ToolBox/TensorConstruction');
addpath('Eig3Folder/Eig3Folder');
disp('----------------- Demo : MRI -----------------')
clear options;
img=double(hdf5read('ImageData/mrbrain_noisy_01.hdf5','/ITKImage/0/VoxelData'))/255;
%options.Weickert_choice = 'cEED'; %Edge enhancing diffusion (default)
options.Weickert_lambda = 0.003; %Edge detection threshold.
options.final_time=8; %PDE evolution time.
options.max_inner_iter=3;
smoothed=NonLinearDiffusion_3D(img,options);
imshow([img(:,:,50),smoothed(:,:,50)]);
pause();
imshow([squeeze(img(:,120,:)),squeeze(smoothed(:,120,:))]);
pause();
imshow([squeeze(img(100,:,:)),squeeze(smoothed(100,:,:))]);
pause();
disp('---------------- Demo : Cos3D ---------------')
clear options;
img=double(hdf5read('ImageData/Cos3D_Noisy.hdf5','/ITKImage/0/VoxelData'))/255;
options.Weickert_choice = 'cCED';
options.Weickert_lambda = 0.02; %Edge detection threshold.
options.final_time=10; %PDE evolution time.
options.noise_filter = fspecial('gaussian',[10,1],4);
options.feature_filter = fspecial('gaussian',[16,1],5);
smoothed=NonLinearDiffusion_3D(img,options);
imshow([img(:,:,90),smoothed(:,:,90)]);
pause();
[1]Jérme Fehrenbach, Mirebeau J M . Sparse Non-negative Stencils for Anisotropic Diffusion[J]. Journal of Mathematical Imaging and Vision, 2014.
[2] Ying X H , Yin Z H , Hua X M , et al. Image Denoising through Combination of P M Diffusion and Coherence Enhancing DiffusionP2M扩散与相干增强扩散相结合的抑制噪声方法[J]. 中国图象图形学报, 2005, 10(2):158-163.
部分理论引用网络文献,若有侵权联系博主删除。