anisotropic_diffusion anisotropic_diffusion AnisotropicDiffusion AnisotropicDiffusion anisotropic_diffusion 各向异性扩散(算子)
名称
anisotropic_diffusion anisotropic_diffusion AnisotropicDiffusion AnisotropicDiffusion anisotropic_diffusion — 对图像进行各向异性扩散。
签名
Herror anisotropic_diffusion (const Hobject Image , Hobject* ImageAniso , const char* Mode , double Contrast , double Theta , const Hlong Iterations )
Herror T_anisotropic_diffusion (const Hobject Image , Hobject* ImageAniso , const Htuple Mode , const Htuple Contrast , const Htuple Theta , const Htuple Iterations )
void AnisotropicDiffusion (const HObject& Image , HObject* ImageAniso , const HTuple& Mode , const HTuple& Contrast , const HTuple& Theta , const HTuple& Iterations )
HImage HImage ::AnisotropicDiffusion (const HString& Mode , double Contrast , double Theta , Hlong Iterations ) const
HImage HImage ::AnisotropicDiffusion (const char* Mode , double Contrast , double Theta , Hlong Iterations ) const
HImage HImage ::AnisotropicDiffusion (const wchar_t* Mode , double Contrast , double Theta , Hlong Iterations ) const
(
Windows only)
描述
算子 anisotropic_diffusion anisotropic_diffusion AnisotropicDiffusion AnisotropicDiffusion AnisotropicDiffusion anisotropic_diffusion 根据 Perona 和 Malik 的模型对输入图像 Image Image Image Image image image 执行各向异性扩散。该函数也被称为非线性各向同性扩散。将图像视为灰度值函数 u,该算法是对偏微分方程的离散化处理:
其中初始值
由时间
的 Image Image Image Image image image 定义。该方程以时间步长 Theta Theta Theta Theta theta theta 迭代 Iterations Iterations Iterations Iterations iterations iterations 次,使得输出图像 ImageAniso ImageAniso ImageAniso ImageAniso imageAniso image_aniso 包含时间
处的灰度值函数。
各向异性扩散的目标是在消除图像中恒定区域的噪声的同时,保留图像中的边缘特征。通过对相邻像素灰度值差异的大小设置阈值 Contrast Contrast Contrast Contrast contrast contrast 来区分边缘与恒定区域。Contrast Contrast Contrast Contrast contrast contrast 被称为对比度参数,用字母 c 表示。
可变扩散系数g可选取遵循不同单调递减函数的形式,其取值范围在 0 至 1 之间,该系数决定了扩散过程对边缘的响应特性。通过参数 Mode Mode Mode Mode mode mode 可选择以下函数:
通过将 Mode Mode Mode Mode mode mode 设置为 'parabolic' "parabolic" "parabolic" "parabolic" "parabolic" "parabolic" 来选择函数
,可确保其关联的微分方程为抛物型,从而使该问题存在适定性理论,且该函数对任意步长 Theta Theta Theta Theta theta theta 均保持稳定。然而在此情况下,即使在高度大于 c 的边界处,仍会存在轻微扩散现象。
Perona 和 Malik 在出版物中采用的 Mode Mode Mode Mode mode mode 选择 'perona-malik' "perona-malik" "perona-malik" "perona-malik" "perona-malik" "perona-malik" 虽不具备
的理论特性,但在实践中已证明其稳定性足够可靠,因而被广泛应用。该理论上的不稳定性会导致强边缘出现轻微锐化现象。
由 Weickert 提出的函数
(常数C=3.31488)通过将 Mode Mode Mode Mode mode mode 设为 'weickert' "weickert" "weickert" "weickert" "weickert" "weickert" 即可启用,该函数在边缘锐化方面是对
的改进。平滑与锐化之间的过渡在 x = c^2 处发生得非常突然。
有关平滑滤波器概念的说明,请参阅 滤波器 / 平滑 一章的引言。
注意
请注意,若使用域缩减后的图像作为输入,滤波器算子可能会返回意外结果。请参阅 滤波器 一章
执行信息
多线程类型:可重入(与非独占算子并行运行)。
多线程作用域:全局(可从任何线程调用)。
在元组级别上自动并行化。
在通道级别上自动并行化。
参数
Image Image Image Image image image (输入对象) (multichannel-)image(-array) → object HImage HObject HImage Hobject (byte / uint2 / real)
输入图像。
ImageAniso ImageAniso ImageAniso ImageAniso imageAniso image_aniso (输出对象) image(-array) → object HImage HObject HImage Hobject * (byte / uint2 / real)
输出图像。
Mode Mode Mode Mode mode mode (输入控制) string → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
扩散系数作为边缘振幅的函数。
默认值:
'weickert'
"weickert"
"weickert"
"weickert"
"weickert"
"weickert"
值列表:
'parabolic' "parabolic" "parabolic" "parabolic" "parabolic" "parabolic" , 'perona-malik' "perona-malik" "perona-malik" "perona-malik" "perona-malik" "perona-malik" , 'weickert' "weickert" "weickert" "weickert" "weickert" "weickert"
Contrast Contrast Contrast Contrast contrast contrast (输入控制) real → HTuple float HTuple Htuple (real) (double ) (double ) (double )
对比参数。
默认值:
5.0
建议值:
2.0, 5.0, 10.0, 20.0, 50.0, 100.0
限制:
Contrast > 0
Theta Theta Theta Theta theta theta (输入控制) real → HTuple float HTuple Htuple (real) (double ) (double ) (double )
时间步长。
默认值:
1.0
建议值:
0.5, 1.0, 3.0
限制:
Theta > 0
Iterations Iterations Iterations Iterations iterations iterations (输入控制) integer → HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
迭代次数。
默认值:
10
建议值:
1, 3, 10, 100, 500
限制:
Iterations >= 1
替代
bilateral_filter bilateral_filter BilateralFilter BilateralFilter BilateralFilter bilateral_filter ,
guided_filter guided_filter GuidedFilter GuidedFilter GuidedFilter guided_filter
参考文献
J. Weickert; “'Anisotropic Diffusion in Image Processing'; PhD
Thesis; Fachbereich Mathematik, Universität Kaiserslautern; 1996.
P. Perona, J. Malik; “Scale-space and edge detection using
anisotropic diffusion”; Transactions on Pattern Analysis and
Machine Intelligence 12(7), pp. 629-639; IEEE; 1990.
G. Aubert, P. Kornprobst; “Mathematical Problems in Image
Processing”; Applied Mathematical Sciences 147; Springer, New
York; 2002.
模块
基础