51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Python 生成 2D 高斯核

本文记录 Python 中二维高斯核的生成方法。

生成思路 {#生成思路}

  • 使用 cv2.getGaussianKernel(ksize, sigma[, ktype]) 函数
  • 该函数用于生成一维高斯核
  • 生成一维高斯核后乘以自己的转置得到二维高斯核

核心函数 {#核心函数}

  • cv2.getGaussianKernel(ksize, sigma[, ktype]) ,函数生成一维高斯核

  • 官方函数文档

  • 参数说明

| 参数 | 描述 | 限制 | |-------|--------------------------------------------------------------------------------------------------|-----------------------------| | ksize | 核尺寸(文档中要求奇数,使用时可以是偶数) | 正整数 | | sigma | 高斯函数的标准差 | 正数 | | ktype | 滤波器系数的类型,可以是 cv2.CV_32fcv2.CV_64f,配置参数后生成数据会分别表示为 float32float64类型,默认为cv2.CV_64f | cv2.CV_32fcv2.CV_64f |

  • 公式:
    $$
    \mathrm{G}_{\mathrm{i}}=\alpha * e^{-(\mathrm{i}-(\mathrm{ksize}-1) / 2)^{2} /(2 * \mathrm{sigma})^{2}}
    $$

生成方法 {#生成方法}

  • 生成一维高斯核
  • 计算得到二维高斯核

  • 如果需要将其归一化到 0 - 1,可以使用 mtutils 中的 min_max_normalize 函数:

参考资料 {#参考资料}



文章链接:
https://www.zywvvd.com/notes/coding/python/2d-gaussian-kernel/2d-gaussian-kernel/

赞(0)
未经允许不得转载:工具盒子 » Python 生成 2D 高斯核