计算递归 IIR 高斯模糊滤波器系数的方程

信息处理 无限脉冲响应 高斯
2022-01-28 20:19:12

我正在从这个链接阅读 IIR 高斯模糊滤波器的实现。

在源代码中,系数由以下代码生成

/* Calcualte Gaussian Blur Filter Coefficiens
 *  alpha -> smooting gradient depends on sigma
 *  k = ((1-e^-alpha)^2)/(1+2*alpha*e^-alpha - e^-2alpha)
 *  a0 = k; a1 = k*(alpha-1)*e^-alpha; a2 = k*(alpha+1)*e^-alpha; 
 *  a3 = -k*e^(-2*alpha)
 *  b1 = -2*e^-alpha; b2 = e^(-2*alpha)
 */
 void calGaussianCoeff( float sigma,  float *a0, float *a1, float *a2, 
   float *a3, float *b1, float *b2, float *cprev, float *cnext)
{
  float alpha, lamma,  k; 
  // defensive check
  if (sigma < 0.5f)
     sigma = 0.5f;

  alpha = (float) exp((0.726)*(0.726)) / sigma;
  lamma = (float)exp(-alpha);
  *b2 = (float)exp(-2*alpha);
  k = (1-lamma)*(1-lamma)/(1+2*alpha*lamma- (*b2));
  *a0 = k;
  *a1 = k*(alpha-1)*lamma;
  *a2 = k*(alpha+1)*lamma;
  *a3 = -k* (*b2);
  *b1 = -2*lamma;
  *cprev = (*a0 + *a1)/(1+ *b1 + *b2);
  *cnext = (*a2 + *a3)/(1+ *b1 + *b2);
}

有谁知道方程来自哪里?

2个回答

@Peter K. 的回答是正确的。您还可以在 Pascal Getreuer, A Survey of Gaussian Convolution Algorithms , Image Processing On Line, 2013 中与替代源代码一起比较建议的大多数实现。

您是否尝试阅读参考文献?

在此处输入图像描述

Deriche 的论文非常有名