c++ - 粒子滤波器中的多元高斯分布

标签 c++ opencv particle-filter

在初始化粒子时,我需要为其添加一些高斯噪声。例如

particle.x(i) = rect(1)+mgd(1,1,0,10);

此处 rect(1) 给出位置,mgd 函数提供噪声

关于 mgd 函数的详细信息是:

  • 函数 x=mgd(N,d,rmean,covariance)
  • 生成多元高斯分布
  • 用法 x=mgd(N,d,mu,sigmax)
  • 此函数从 d 维生成 N 个样本 高斯分布

我的N和d的值一直是1,如何在opencv c++中实现mgd功能?

最佳答案

看看标准库 "random" , 它包括针对不同分布的方法,包括 normal distribution .

在变量不相关的情况下,可以对每个维度使用独立的一维随机数(参见KeillRandor的回答),否则是不正确的。对于实现,您可以查看 MATLAB 的代码,为此,在脚本编辑器中键入

mvnrnd

然后右键单击刚刚键入的命令并在上下文菜单中选择打开 mvrnd。您将看到 mvnrnd 函数的 MATLAB 代码。

关于c++ - 粒子滤波器中的多元高斯分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24158920/

相关文章:

c++ - 为什么 numeric_limits<uint16_t>::max() 不等于 -1?

C++ 使错误 : object_var has not been declared

algorithm - 粒子滤波算法应该如何初始化样本和权重?

opencv - 在视频稳定中使用卡尔曼滤波器或粒子滤波器平滑运动

c++ - clang::acquire_capability 的用例是什么?

c++ - 如何使用 cppcheck 查找函数是否存在于 cpp 文件中?

python - 分割后将颜色空间从 RGB 更改为 HSV(OpenCv Python)

python - 我无法在 docker 中安装 opencv-contrib-python

python - OpenCV-Python createMergeDebevec 返回一个 Inf 数组

c++ - 如何使用 OpenCV 中可用的压缩算法?