商城建设网站制作,长春网站制作wang,凡科是大厂吗,网址你懂我意思正能量图像滤波---各项异性扩散滤波使用笔记及代码 一、文章内容介绍二、各项异性扩散滤波和各项同性滤波1、各项同性滤波2、各项异性扩散滤波3、各项异性和各项同性的对比 三、各项异性扩散滤波的原理介绍四、各项异性扩散滤波公式五、公式中的参数使用说明1、扩散速率 λ \lambda λ… 图像滤波---各项异性扩散滤波使用笔记及代码 一、文章内容介绍二、各项异性扩散滤波和各项同性滤波1、各项同性滤波2、各项异性扩散滤波3、各项异性和各项同性的对比 三、各项异性扩散滤波的原理介绍四、各项异性扩散滤波公式五、公式中的参数使用说明1、扩散速率 λ \lambda λ1参数说明2效果展示3调节指南 2、扩散敏感度 K K K1参数说明2效果展示3调节指南 六、完整MATLAB代码 一、文章内容介绍
1、文章首先介绍各项异性扩散滤波以及各项同性滤波 2、接着简要的说明各项异性滤波算法的原理和功能 3、然后对各项异性滤波算法的几个参数的作用及调试进行详解 4、最后附上各项异性滤波matlab的代码
二、各项异性扩散滤波和各项同性滤波
1、各项同性滤波
在做图像处理时我们接触到很多滤波算法耳熟能详的有高斯滤波、均值滤波以及中值滤波。这些滤波 算法中对于每一个像素点算法都一视同仁或使用相同的系数或使用相同的邻域规则来对像素值进行处理。这些算法不考虑该像素的梯度方向一视同仁处理效果在各个方向上是一样的对于整幅图像的处理是均匀的图像的平滑不会因梯度而有所偏向这样的滤波叫各项同性滤波Isotropic Filtering。
2、各项异性扩散滤波
与各项同性扩散滤波相对的即是各项异性扩散滤波Anisotropic Filtering各项异性扩散滤波是一种保边滤波器在不同的梯度方向上像素值做不同程度的改变区分出图像的边缘信息在去除噪声的同时保留边缘。 各项异性扩散叫P-M扩散论文原文Scale-space and edge detection using anisotropic diffusion。
3、各项异性和各项同性的对比
各项同性滤波处理是均匀的不考虑方向适合于简单的去噪和模糊处理。 各项异性滤波处理是方向依赖的能够更好地保留边缘和细节适合于复杂的图像去噪尤其是在需要保留边缘信息的情况下。
三、各项异性扩散滤波的原理介绍
各项异性扩散滤波的本质是根据图像的梯度信息来调控扩散系数。 各项异性指物体的全部或者部分物理、化学性质随方向的不同而有所变化的特性。对于整张图像将其看做一个热量场将每个像素看做一个热流对于边缘像素我们不想让其平滑掉所以边缘的邻域像素热流的扩散要很弱除此之外其他的地方顺着梯度的方向进行扩散扩散过的图像区域就会变得平滑如此在保留边缘的同时平滑了噪声区域。
四、各项异性扩散滤波公式
滤波公式如下 I t 1 I t λ ∗ ( c N x y ∗ D N ( I t ) c S x y ∗ D S ( I t ) c E x y ∗ D E ( I t ) c W x y ∗ D W ( I t ) ) I_{t1}I_t\lambda*(cN_{xy}*D_N(I_t)cS_{xy}*D_S(I_t)cE_{xy}*D_E(I_t)cW_{xy}*D_W(I_t)) It1Itλ∗(cNxy∗DN(It)cSxy∗DS(It)cExy∗DE(It)cWxy∗DW(It)) 其中I表示图像x,y表示像素位置t代表迭代次数 λ \lambda λ表示扩散速率。 D N D_N DN、 D S D_S DS、 D E D_E DE、 D W D_W DW分别表示南、北、西、东即上下左右四个方向的梯度梯度计算如下 D N ( I t ) I t ( x , y − 1 ) − I t ( x , y ) D_N(I_t)I_t(x,y-1)-I_t(x,y) DN(It)It(x,y−1)−It(x,y) D S ( I t ) I t ( x , y 1 ) − I t ( x , y ) D_S(I_t)I_t(x,y1)-I_t(x,y) DS(It)It(x,y1)−It(x,y) D E ( I t ) I t ( x − 1 , y ) − I t ( x , y ) D_E(I_t)I_t(x-1,y)-I_t(x,y) DE(It)It(x−1,y)−It(x,y) D W ( I t ) I t ( x 1 , y ) − I t ( x , y ) D_W(I_t)I_t(x1,y)-I_t(x,y) DW(It)It(x1,y)−It(x,y) Nxy、Sxy、Exy、Wxy分别表示对应方向上的扩散系数扩散系数公式如下 c N x y e − D N ( I t ) 2 K 2 cN_{xy}e^{- \frac{{D_N(I_t)}^2}{K^2}} cNxye−K2DN(It)2 c S x y e − D S ( I t ) 2 K 2 cS_{xy}e^{- \frac{{D_S(I_t)}^2}{K^2}} cSxye−K2DS(It)2 c E x y e − D E ( I t ) 2 K 2 cE_{xy}e^{- \frac{{D_E(I_t)}^2}{K^2}} cExye−K2DE(It)2 c W x y e − D W ( I t ) 2 K 2 cW_{xy}e^{- \frac{{D_W(I_t)}^2}{K^2}} cWxye−K2DW(It)2 其中 K K K表示对应方向的扩散灵敏度。
五、公式中的参数使用说明
1、扩散速率 λ \lambda λ
1参数说明
从公式中显而易见 λ \lambda λ控制每次迭代中像素值的变化量。 理论上 λ \lambda λ较大每个像素的扩散速度会比较快因为每次像素值改变的增量会比较大会导致图像的细节丢失。
2效果展示
在N(迭代次数)和K固定的情况下 λ \lambda λ从0.1~0.9的去噪效果图0.1时细节保留最完整0.3时细节丢失严重0.5 ~0.7细节丢失程度依次增加。
3调节指南
从效果图分析调解时固定另外两个变量从0.1开始逐步增加或减少步长可设置为0.05、0.1、0.2观察图像的去噪效果和细节保留情况找到最佳的平衡点比如上述图像的滤波平衡点应在0.1 ~0.3之间。
2、扩散敏感度 K K K
1参数说明
从公式看 K K K是指数函数 e e e的一个参数函数形式为 y e − 1 K 2 ∗ x 2 ye^{-{\frac{1}{K^2}*x^2}} ye−K21∗x2当 1 K 2 0.5 \frac{1}{K^2} 0.5 K210.5时函数图像如下 当 1 K 2 2 \frac{1}{K^2} 2 K212时函数图像如下 从两幅图像来看 K K K越大曲线变换越平缓表明系数对梯度的响应越不敏感各项异性的程度就越低图像应该就越模糊。
2效果展示
固定 λ 0.12 \lambda0.12 λ0.12N20时 K K K从10增加到40从图上看 K K K越大平滑的越厉害细节丢失越严重。
3调节指南
对于 K K K通常可以选择从10开始调节增加或减少每次步长5、10、15、20尝试。 如果图像中细节多噪声少K的值应该小一些否则就大一些。
六、完整MATLAB代码
运行环境为Windows10和Matlab2023a run.m
clc
clear
%读取图像
img imread(lisaGrayNoise.bmp);
%设置系数
lambda 0.12;
K 40;
N 20;
%执行各项异性扩散滤波
imgADF ImageADF(img,lambda,K,N);
figure;
imshow(img);
title(原图);
figure;
imshow(imgADF);
title(各向异性扩散滤波结果K40);ImageADF.m function imgADF ImageADF(img,lambda,K,N)
[m, n] size(img);
imgADF zeros(m, n);
img double(img);
for t 1 : Nfor i 2 : m-1for j 2 : n-1NI img(i-1, j) - img(i, j);SI img(i1, j) - img(i, j);EI img(i, j-1) - img(i, j);WI img(i, j1) - img(i, j);cN exp(-NI^2/K^2);cS exp(-SI^2/K^2);cE exp(-EI^2/K^2);cW exp(-WI^2/K^2);imgADF(i, j) img(i, j) lambda*(NI*cN SI*cS EI*cE WI*cW);endendimg imgADF;
end
imgADF img;
imgADF uint8(imgADF);
end