【图像去噪】基于matlab PM模型图像降噪【含Matlab源码 2107期】
一、PM模型图像降噪简介
为了提高去除噪声和保留细节信息的算法的性能,Peroha等提出以热学中扩散方程式为基础的扩散算法即为PM模型。该模型主要是在经典各向异性扩散方dgi,j,t/dt=div(d∇g)上提出将其中的扩散系数d用函数控制的扩散系数替代。PM模型为
 
 其中,f(|∇gi,j,t|)是一个扩散系数函数,∇是梯度,div是散度,g0(i,j)是一个最开始的像素点,(i,j)是图像中像素点位置,t为时间间隔。在传统的PM模型中,Perona和MAlik提出了两个满足以下条件的函数f(|∇gi,j,t|):
 
 扩散系数函数f(|∇gi,j,t|)应具有以下特点:
(1)函数f(|∇gi,j,t|)是以|∇gi,j,t|为变量,随着变量上升而下降;
(2)当|∇gi,j,t|→0时,f(|∇gi,j,t|)=1;
(3)当|∇gi,j,t|→1时,f(|∇gi,j,t|)=0.
常量k为梯度门限,判断k与|∇gi,j,t|大小关系,主要用于判断是否对图像中某个范围进行扩散。将式(1)离散化,得
 
 式(4)中di+1,j,t,di-1,j,t,di,j+1,t,di,j-1,t分别是北,南,西,东上的扩散系数值,且∇Ngi,j,∇Sgi,j,∇Wgi,j,∇Egi,j分别表示北,南,西,东方向上的梯度值,λ是衡量扩散速度的常量。则处理后新的像素值fi,j为
 
 综上分析可得PM扩散模型如图1所示。
 
 图1 传统PM扩散模型
 传统PM模型仍有不足之处,对于有些边缘化的噪声点去噪效果不甚理想;在该模型中,扩散函数不利于图像的平滑,另外只选择了4个方向的扩散,易造成图像内容信息损失,出现模糊现象。
二、部分源代码
clear all;
 close all;
 %Io=imread(‘Image/Article3.bmp’);% 读入一幅图像
 %Io=imread(‘Image/GZC01.bmp’);
 Io=imread(‘pepper.bmp’);
 %Io=imread(‘Image/cameraman.bmp’);
I=double(rgb2gray(Io));
 In=I;
 % I=double(Io);
 % stan_var=20;
 % var=stan_var^(2);
 % IN1=randn(size(I))*stan_var;
 % In=I+IN1;
% save(‘In’);
 % % load(‘In’);
 figure(2),imshow(In,[],‘Border’,‘tight’);
 figure(3),imshow(I,[],‘Border’,‘tight’);
 lamda=0.2;
 iter=350;
 K=2.5;
[ImMAE,PSNRAll,Is]=diffusion_PM(I,In,iter,lamda,K);
figure(4),imshow(Is,[],‘Border’,‘tight’);
 figure(5),imshow(Is-In,[],‘Border’,‘tight’);
 [Ny,Nx]=size(Is);
 x=1:Nx;
 level=fix(Ny/2);
 y=Is(level,:);
 y1=I(level,:);
 y2=In(level,:);
figure(14);
 subplot(2,1,1); plot(x,y,x,y1);
 title(‘SmoothImage And OriginalImage’)
 subplot(2,1,2); plot(x,y,x,y1,x,y2);
 title(‘NoiseImage And OriginalImage’)
figure(6);
 x=1:iter;
 plot(x,PSNRAll);title(‘PSNR’)
figure(7);
 x=1:iter;
 plot(x,ImMAE);title(‘MAE’)
三、运行结果

 
 
 
 
 
 
四、matlab版本及参考文献
1 matlab版本
 2014a
2 参考文献
 [1]晏满钰,文成玉.改进的PM模型的医学超声图像去噪算法[J].成都信息工程大学学报. 2019,34(06)
3 备注
 简介此部分摘自互联网,仅供参考,若侵权,联系删除
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/126803159
- 点赞
- 收藏
- 关注作者
 
             
           
评论(0)