2011-10-13 66 views
2

我试着使用codebook方法,但是并不真正理解code_book结构中int t的点。它的变量用于“计算每个访问”,但这完全失去了我。计算什么访问什么?通过谁?有人可以向我解释成员变量的目的吗?请尝试使用非技术性术语OpenCV背景减法/码本?

其次,在ce结构中,int t_last_update和int stale成员数据的含义是什么? t_last_update应该杀死陈旧的条目,但最新的条目是什么? “杀了它”是什么意思?对于int stale,它应该计算最大负值运行吗?什么是负面运行和它用于什么?

感谢您的帮助

PS:只是确认我需要什么:解释一下INT吨一code_book结构做什么INT t_last_update和int _stale都在CE结构。

+1

什么是“码书方法”? – SSteve

+1

背景减法的高级方法 – fdh

回答

3

我假设你是在谈论来自OpenCV的书的这部分代码:

typedef struct code_book { 
    ... 
    int t; // Count every access 
} codeBook; 

基本上,你能想到的牛逼场勾号的每一个新的帧添加到时间计数代码簿。它用于确定从代码簿集合开始到最后清除过时像素的时间。

编辑: 你有两个数据结构被跟踪。 codeBook就像存储在其中的codeBook_elements的父代(即,结构)。每次更新代码簿时,t都会增加。但是,该更新可能不会增加所有codeBook_elements。所以...

t_last_update是特定的codeBook_element被访问的最后一次。

陈旧有助于跟踪代码簿中代码簿条目的“旧”。

negRun代表负运行时间。它会跟踪自从访问代码簿条目以来已经过了多长时间。如果时间太长,那么它被认为是陈旧的并且被移除以节省内存。

OpenCV示例中存在代码本方法的更新。看看bgfg_codebook.cpp示例。

希望有帮助!

+1

谢谢你我完全理解它:)只是一件小事t_last_update和int t看起来基本上是一样的东西,为什么有两个不同的变量? 再次感谢 – fdh

+0

对不起,关于我没有那么清楚:)我会编辑答案来清除它! – mevatron

+0

谢谢你,完美的总结:) – fdh