4
我只是想知道这个函数CvBGStatModel()是如何工作的。我的意思是说什么是用于此的算法,以及它与平均和帧差分算法相比如何给出更好的结果。opencv函数CvBGStatModel
在此先感谢。
我只是想知道这个函数CvBGStatModel()是如何工作的。我的意思是说什么是用于此的算法,以及它与平均和帧差分算法相比如何给出更好的结果。opencv函数CvBGStatModel
在此先感谢。
CvBGStatModel()是一个类,而不是一个函数。例如,你可以创建这个类是这样的:
IplImage* temp = NULL;
temp = cvLoadImage("temp.jpg");
CvBGStatModel* background_model = cvCreateGaussianBGModel(temp);
你要调用一个函数,以更新背景/前景模型(see sample):
cvUpdateBGStatModel(temp, background_model);
“如何提供更好的结果与平均值和帧差算法进行比较“
因为它将像素信息存储为更好地表示该像素的高斯分布的混合。这意味着只要能够更好地表示它的高斯图像被认为是背景,就不会考虑在几帧内改变其值的像素。高斯是加权的。最长的高斯分布被认为是背景,它具有的权重越大。 帧差算法仅考虑帧之间的差异,但不考虑这些差异的一致性/可信度。
我还有另一个疑问,我使用的是opencv 2.0,并且这个类不在其中,所以请告诉我我应该使用哪个版本?感谢您的及时答案。它真的很有帮助..我也试图计算视频中的汽车数量..我的算法是基于矩形的检测,但可悲的是它计算了一个单一的车由3个矩形组成结果是不是所需的一个..任何人都可以帮助我改进这个算法或任何更好的算法总是欢迎...提前感谢。 – user1386438
我建议你总是使用最新版本的OpenCV。我使用2.3.1,但现在可以使用2.4。如果你没有这个类,你肯定会有相应的改进的接口:http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html?highlight=background#backgroundsubtractormog2 –
建议一些关于算法 – user1386438