我正在尝试使用两种带有EM算法的高斯混合来估计视频帧的颜色分布。为此,我想在颜色分布中使用两个单独的峰作为两个高斯平均值来促进EM计算。我在OpenCV中实现这些有几个困难。
我的第一个问题是:如何确定这两个峰?我搜索过OpenCV中的峰值估计,但仍然找不到任何单独的函数。所以我将确定两个区域,然后找到它们的最大值作为峰值。这种方式是否正确?
我的第二个问题是:如何在OpenCV中使用EM执行高斯混合模型?据我所知,“cv :: EM :: predict”函数可以给出最可能的混合成分的索引。但我在训练EM方面遇到了困难。我搜索并找到了其他一些代码,但找到正确的参数太难了。有人可以为我提供任何示例代码吗?先感谢您。
答案 0 :(得分:1)
@ederman,尝试使用{OpenCV库位置} \ opencv \ samples \ cpp \ em.cpp而不是Web链接。我认为链接中的示例代码现在已经过时了。我已成功编译OpenCV 2.3.1中的示例代码。它应该不是2.4.2的问题。
祝你好运:)答案 1 :(得分:0)
我的第一个问题是:我如何确定两个峰值?
我会迭代可能的样本值范围,并测试EM.predict(样本)[0]的峰值。