我使用opencv进行车辆计数过程。 如何将BackgroundSubtractorMOG对象(如BackgroundSubtractorMOG2等)保存到文件中,以便我可以从文件中读取它,再次使用训练好的背景模型而无需长时间训练?
答案 0 :(得分:6)
我碰巧正在寻找这个确切的东西,所以如果其他人还在寻找的话,我会分享我所学到的东西。似乎简短的答案是否。至少它似乎不受OpenCV的支持。
BackgroundSubtractorMOG2继承自BackgroundSubtractor,后者继承自Algorithm,该算法具有内置的读/写功能,用于存储算法的参数。根据{{3}}上的OpenCV文档,它只存储背景模型算法的参数,而不存储背景模型本身。引用链接:
“然而,背景模型没有存储。首先,它是相当大的。然后,如果你已经存储了背景模型,它可能会在下一次运行时变得无关紧要(因为相机移位,背景改变,灯光不同等)因此,BackgroundSubtractorMOG和BackgroundSubtractorMOG2也依赖标准的Algorithm :: write()来存储算法参数。“
作为旁注,我完全不同意OpenCV,我不明白为什么他们觉得有必要为我做出这个决定,而不仅仅是让我保存背景模型,如果我看到它的目的。无论如何,这就是我发现的,如果其他人知道如何存储背景模型或解决方法:请分享。