前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 生成 2D 高斯核

Python 生成 2D 高斯核

作者头像
为为为什么
发布2022-08-06 17:23:33
2.1K0
发布2022-08-06 17:23:33
举报
文章被收录于专栏:又见苍岚又见苍岚

本文记录 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}}

生成方法

  • 生成一维高斯核
代码语言:javascript
复制
import cv2
data = cv2.getGaussianKernel(300, 100, cv2.CV_32F)

  • 计算得到二维高斯核
代码语言:javascript
复制
import cv2 
from mtutils import PIS

data = cv2.getGaussianKernel(300, 100, cv2.CV_32F)

gaussian_kernel = data * data.T
PIS(gaussian_kernel)

  • 如果需要将其归一化到 0 - 1,可以使用 mtutils 中的 min_max_normalize 函数:
代码语言:javascript
复制
import cv2 
from mtutils import PIS
from mtutils import min_max_normalize

data = cv2.getGaussianKernel(300, 100, cv2.CV_32F)

gaussian_kernel = data * data.T
gaussian_kernel = min_max_normalize(gaussian_kernel)
PIS(gaussian_kernel)

pass

参考资料

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年2月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 生成思路
  • 核心函数
  • 生成方法
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档