【图像去噪】基于边缘增强扩散 (cEED) 和 Coherence Enhancing Diffusion (cCED) 滤波器实现图像去噪附matlab代码

简介: 【图像去噪】基于边缘增强扩散 (cEED) 和 Coherence Enhancing Diffusion (cCED) 滤波器实现图像去噪附matlab代码

 1 内容介绍

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.

2 仿真代码

% 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();

3 运行结果

image.gif编辑

4 参考文献

[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.

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

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


相关文章
|
6天前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
|
6天前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
82 14
|
6天前
|
机器学习/深度学习 算法
【概率Copula分类器】实现d维阿基米德Copula相关的函数、HACs相关的函数研究(Matlab代码实现)
【概率Copula分类器】实现d维阿基米德Copula相关的函数、HACs相关的函数研究(Matlab代码实现)
|
8天前
|
算法 计算机视觉
【MPDR & SMI】失配广义夹角随输入信噪比变化趋势、输出信干噪比随输入信噪比变化趋势研究(Matlab代码实现)
【MPDR & SMI】失配广义夹角随输入信噪比变化趋势、输出信干噪比随输入信噪比变化趋势研究(Matlab代码实现)
|
8天前
|
编解码 人工智能 算法
【采用BPSK或GMSK的Turbo码】MSK、GMSK调制二比特差分解调、turbo+BPSK、turbo+GMSK研究(Matlab代码实现)
【采用BPSK或GMSK的Turbo码】MSK、GMSK调制二比特差分解调、turbo+BPSK、turbo+GMSK研究(Matlab代码实现)
|
8天前
|
机器学习/深度学习 编解码 并行计算
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
|
8天前
|
机器学习/深度学习 传感器 边缘计算
【故障诊断】基于时滞反馈随机共振的增强型旋转电机故障诊断(Matlab代码实现)
【故障诊断】基于时滞反馈随机共振的增强型旋转电机故障诊断(Matlab代码实现)
|
8天前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
|
8天前
|
运维 算法
【故障诊断】基于最小熵反卷积、最大相关峰度反卷积和最大二阶环平稳盲反卷积等盲反卷积方法在机械故障诊断中的应用研究(Matlab代码实现)
【故障诊断】基于最小熵反卷积、最大相关峰度反卷积和最大二阶环平稳盲反卷积等盲反卷积方法在机械故障诊断中的应用研究(Matlab代码实现)
|
6天前
|
机器学习/深度学习 传感器 算法
【裂纹检测】检测和标记图片中的裂缝(Matlab代码实现)
【裂纹检测】检测和标记图片中的裂缝(Matlab代码实现)

热门文章

最新文章