【图像去噪】基于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图像加密】正交拉丁方置乱算法图像加解密【含GUI源码 182期】
一.代码运行视频(哔哩哔哩) [Matlab图像加密]正交拉丁方置乱算法图像加解密[含GUI源码 182期] 二.matlab版本及参考文献 一.代码运行视频(哔哩哔哩) [Matlab图像处理]自动 ...
- 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】
一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...
- 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...
- 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...
- 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...
- 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】
一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...
- 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】
一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...
- 【Matlab人脸识别】KL变换人脸识别【含GUI源码 859期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]KL变换人脸识别[含GUI源码 859期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...
- 【Matlab指纹识别】指纹识别门禁系统【含GUI源码 1692期】
一.代码运行视频(哔哩哔哩) [Matlab指纹识别]指纹识别门禁系统[含GUI源码 1692期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继 ...
最新文章
- PADS Layout VX.2.3 修改层名
- 线段树-离散化处理点
- window.print()方法,如何获取打印弹框显示状态
- VS Code 自动修改和保存 代码风格 == eslint+prettier
- namespace-C#命名空间
- 快速傅里叶变换python_FFT快速傅里叶变换的python实现过程解析
- 测试markdown的发布
- 搞懂Vision Transformer 原理和代码,看这篇技术综述就够了(三)
- 学c语言前要学计算机导论吗,计算机导论与C语言
- 双IP双线路实现方式 先来说说双线单IP和双线双IP的区别
- (7)数据分析-秩和检验
- python 修改文件内容3种方法,Python实现修改文件内容的方法分析
- 快捷方式图标变成白色
- 现金流折算法的详细计算公式记录
- CSR8670学习笔记:OTA升级固件
- vue 浏览器调试 样式如何定位样式_Vue项目骨架屏注入实践和方法总结
- 2019年iOS开发者中心证书生成方法以及极光推送证书使用方法!
- 为什么Vertu没有成为诺基亚的iPhone?
- Linux 平台下基于Qt 的电子地图的绘制
- 关于添加android:name=android.permission.INSTALL_PACKAGES报错的解决方法