导出opencv backgroundsubtractorMOG2

时间:2017-03-23 18:35:50

标签: c++ opencv background-subtraction

我在opencv 3.2中使用MOG2算法进行背景调整。我想看看学习过的高斯混合模型(权重,方差,平均值......),但opencv不提供内置函数来查看值。

在bgfg_gaussmix2.cpp源代码中,我在类BackgroundSubtractorMOG2Impl中找到了我需要的变量:

UMat u_weight;
UMat u_variance;
UMat u_mean;
UMat u_bgmodelUsedMod

所以我所做的就是放一些可以返回变量的函数(格式与内置函数相同)

 virtual UMat getWeight() const { return u_weight; }
 virtual UMat getVariance() const { return u_variance; }
 virtual UMat getMean() const { return u_mean; }
 virtual UMat getNmodes() const {return u_bgmodelUsedModes;}

然后我还将以下内容添加到background_segm.hpp文件中,类CV_EXPORTS_W BackgroundSubtractorMOG2中:

CV_WRAP virtual UMat getWeight() const = 0;
CV_WRAP virtual UMat getVariance() const = 0;
CV_WRAP virtual UMat getMean() const = 0;
CV_WRAP virtual UMat getNmodes() const = 0;

在此之后,我构建并安装修改后的opencv源代码。然后我编写了自己的程序来运行backgroundubtractorMOG2算法。我可以调用我添加到opencv源代码中的新函数,但返回的UMats只是零。

所以我的问题是如何以正确的方式获得UMats?

0 个答案:

没有答案