图像去噪基于matlab非线性扩散PM算法图像去噪含Matlab源码 2130期

Posted 海神之光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像去噪基于matlab非线性扩散PM算法图像去噪含Matlab源码 2130期相关的知识,希望对你有一定的参考价值。

一、PM模型图像降噪简介

1 引言
数字图像在获取、存储和传输中总会受到噪声的影响,因此图像去噪一直是备受关注的研究问题。作为图像处理技术的一大分支,基于偏微分方程的方法在图像去噪领域发挥着功不可没的作用。其中,PM (Perona-Malik, PM)模型是一种典型的非线性扩散模型,

其中,k表示噪声阈值,用来控制沿着梯度方向的扩散量。

PM模型的显式离散解为:

PM模型利用图像的梯度模对扩散系数进行调节,在平坦区域进行大的扩散,在边沿区域主要沿着边沿的切线方向进行扩散,具有很好保持边沿的作用。然而,PM去噪后图像却存在明显的阶梯效应,且容易引入斑点噪声。

2 本文算法
在PM模型中,扩散系数直接影响去噪效果。经典PM模型中,扩散系数直接依赖于待求像素点的梯度模,而受到噪声的影响,尤其随着噪声水平的提高,梯度的计算将产生很大的误差。文献[6]提出利用噪声和图像边沿在邻域范围内的不同结构特征,使用待求像素点的邻域像素值来构造水平和垂直两个方向的扩散函数,达到更好的保护边沿的作用,然而该方法仍然会在去噪图像中引入斑点噪声。受到文献[6]的启发,本文从水平、垂直,45°对角和135°对角4个方向来构造扩散函数:

其中,I1和I2是像素点s在沿p方向上的两个相邻像素点值,d是预设的参数,用于防止小噪声区域被误当为边沿。是符号函数,即

使用公式(5)-(8)对水平、垂直,45°对角和135°对角方向的扩散系数进行计算,然后使用公式(4)在待求像素点的3×3邻域的8个方向进行扩散,经过多次迭代,得到最后的去噪图像。

二、部分源代码

close all
clear
clc

%原始图像的读取与显示
%im=imread(‘lenna.bmp’);
im=imread(‘VV.jpg’);

imshow(im);
title(‘原始图像’);

% %高斯低通滤波得到模糊图像
% h=fspecial(‘gaussian’,[3,3],1);%高斯低通滤波器(采用33的模板,标准差为1(默认的为33模板,标准差为0.5))
% imA=imfilter(im,h);
% figure;
% imshow(uint8(imA));
% title(‘模糊图像’);

%添加高斯白噪声
imB=imnoise(im,‘gaussian’,0,0.003);
SNR(im,imB)
%imB=imA+randn(size(imA))*5;
figure(1);
imshow(imB);
title(‘含噪图像’);

PM_image=PM(imB,200,0.02,2);
SNR(im,PM_image)
figure(2);
imshow(uint8(PM_image));
title(‘50次迭代后的效果图’);

PM_image=PM(imB,300,0.02,2);
SNR(im,PM_image)
figure(3);
imshow(uint8(PM_image));
title(‘100次迭代后的效果图’);

PM_image=PM(imB,500,0.02,2);
SNR(im,PM_image)
figure(4);
imshow(uint8(PM_image));
title(‘200次迭代后的效果图’);

三、运行结果




四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]贾丽娜,张志恒.一种改进的非线性扩散图像去噪算法[J].电子技术与软件工程. 2019,(17)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

以上是关于图像去噪基于matlab非线性扩散PM算法图像去噪含Matlab源码 2130期的主要内容,如果未能解决你的问题,请参考以下文章

图像去噪基于matlab PM模型图像降噪含Matlab源码 2107期

图像去噪基于matlab PM模型图像降噪含Matlab源码 2107期

数字图像处理,基于PM和Catte模型各向异性扩散的C++实现

图像去噪基于matlab GUI加权+绝对差分中值滤波图像去噪含Matlab源码 1880期

图像去噪基于KSVD实现图像去噪matlab源码

图像去噪基于KSVD实现图像去噪matlab源码