本文最后更新于:2024年5月7日 下午
本文记录 Python 中二维高斯核的生成方法。
生成思路
- 使用
cv2.getGaussianKernel(ksize, sigma[, ktype])
函数 - 该函数用于生成一维高斯核
- 生成一维高斯核后乘以自己的转置得到二维高斯核
核心函数
-
cv2.getGaussianKernel(ksize, sigma[, ktype])
,函数生成一维高斯核 -
参数说明
参数 | 描述 | 限制 |
---|---|---|
ksize | 核尺寸(文档中要求奇数,使用时可以是偶数) | 正整数 |
sigma | 高斯函数的标准差 | 正数 |
ktype | 滤波器系数的类型,可以是 cv2.CV_32f 或 cv2.CV_64f ,配置参数后生成数据会分别表示为 float32 和 float64 类型,默认为cv2.CV_64f |
cv2.CV_32f 或 cv2.CV_64f |
- 公式:
$$
\mathrm{G}_{\mathrm{i}}=\alpha * e^{-(\mathrm{i}-(\mathrm{ksize}-1) / 2)^{2} /(2 * \mathrm{sigma})^{2}}
$$
生成方法
- 生成一维高斯核
1 |
|
- 计算得到二维高斯核
1 |
|
- 如果需要将其归一化到 0 - 1,可以使用
mtutils
中的min_max_normalize
函数:
1 |
|
参考资料
- https://docs.opencv.org/3.0-beta/modules/imgproc/doc/filtering.html?highlight=getgaussiankernel#Mat getGaussianKernel(int ksize, double sigma, int ktype)
- https://blog.csdn.net/qq_16013649/article/details/78784791
- https://blog.csdn.net/weixin_41563746/article/details/114199025
文章链接:
https://www.zywvvd.com/notes/coding/python/2d-gaussian-kernel/2d-gaussian-kernel/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付
Python 生成 2D 高斯核
https://www.zywvvd.com/notes/coding/python/2d-gaussian-kernel/2d-gaussian-kernel/