【问题标题】:How to get the Gaussian matrix with variance σs in opencv?如何在opencv中获得方差为σs的高斯矩阵?
【发布时间】:2014-05-04 16:25:36
【问题描述】:

我正在尝试在 opencv 中设计一个线检测器,为此,我需要获得方差为σs 的高斯矩阵。

最终的公式应该是 H=Gσs∗(Gσd')TH 是我要创建的检测器,但我不知道我应该如何创建具有方差的矩阵并最终计算 H更新

这是完整的公式。其中“T”是转置操作。Gσd' 是一维高斯函数Gσd 的一阶导数,方差σd 在这个方向

****更新****

这是我想要的两个公式,我需要H 以供进一步使用,所以请告诉我如何生成矩阵。谢谢!

【问题讨论】:

  • 我刚刚回答了这个问题here对于一阶导数,同样的逻辑可以应用于二阶。

标签: c++ opencv matrix


【解决方案1】:

由于高斯滤波器很常见,OpenCV 有一个内置操作:GaussianBlur

当您使用该函数时,您可以将 ksize 参数设置为 0/0 以根据给定的 sigmas 自动计算内核的像素大小。


高斯二维滤波器内核是可分离的。这意味着您可以首先沿 x 轴应用一维滤镜,然后沿 y 轴应用一维滤镜。这就是在上面的等式中有两个一维滤波器的原因。执行两个 1D 过滤操作而不是执行一个 2D 操作要快得多。

【讨论】:

  • 感谢您的回答,但我仍然不知道如何获得我想要的结果。我对opencv 不是很熟悉,也许更多细节?再次感谢!
  • 我看过那个教程,但是我该如何使用那个功能呢? GaussianBlur( src, dst, Size( 0, 0 ), σs, σd )?但是有一个first-order,不知道这样能不能得到我想要的结果?你能告诉我如何使用这个功能吗?
  • @richard:请更具体一些。我不明白你的问题。
  • 好的,我想在我提供的公式中得到I0',但我不知道如何使用GaussiaBlur 得到那个,抱歉不清楚,我只是不知道知道如何用英语清楚地描述它..
猜你喜欢
  • 2016-05-03
  • 2019-08-02
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 2018-09-02
  • 2019-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多