百度百科上说:各向同性和各向异性是指物理性质在不同的方向进行测量得到的结论,如果物理性质和取向密切相关,不同取向的测量结果迥异,就称为各向异性。
1 图像向异性扩散滤波介绍
向异性扩散滤波通过是用来对图像实现平滑操作的。而在图像处理中,主要有高斯滤波相对应,与跨尺度的高斯平滑相比,它可以更好地保留生成的尺度空间表示中的边缘和纹理细节,且可以增强图像边缘。而高斯模糊不考虑对象的自然边界,并且对细节和噪声进行相同程度的平滑,降低了图像的定位精度和清晰度。
通常我们有将图像看作矩阵的。而将各向异性扩散是将图像看作热量场。每个像素看作热流,根据当前像素和周围像素的关系,来确定是否要向周围扩散。比如某个邻域像素和当前像素差别较大,表示这个邻域像素很可能是个边界,那么当前像素就不向这个方向扩散了,这个边界也就得到保留了。
各向异性扩散滤波的主要公式:
其中,I表示图像,t表示迭代次数。
四个散度公式是在四个方向上对当前像素求偏导,公式如下:
cN、cS、cE、cW代表四个方向上的导热系数,边界的导热系数都较小,公式如下:
其中,系数k,取值越大越平滑,越不易保留边缘;lambda同样也是取值越大越平滑
2 代码实现
工程文件组织形式如下图所示:
2.1 main函数代码
(Anmain.cpp文件)
// 实现各向异性的图像扩散 实例代码
// 作者:yyx
// 时间:2019.11.9
#include <iostream>
#include <