2

我尝试了 codebook 方法,但并不真正理解 int t 在 code_book 结构中的意义。它是用于“计算每次访问”的变量,但这完全让我迷失了。算什么访问什么?通过谁?有人可以向我解释成员变量的目的吗?请尽量使用非技术术语

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

谢谢你的帮助

PS:只是确认我需要什么:解释 int t 在 code_book 结构中的作用以及 int t_last_update 和 int _stale 在 ce 结构中的作用。

4

1 回答 1

3

我假设您正在谈论 OpenCV 书中的这部分代码:

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

基本上,您可以将t字段视为每次将新帧添加到代码簿时的滴答计数。它用于确定从代码簿收集开始或最后一次清除陈旧像素到现在已经过去了多长时间。

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

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

stale有助于跟踪密码本条目在密码本中的“旧”程度。

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

OpenCV 示例中的代码簿方法有更新。查看bgfg_codebook.cpp示例。

希望这有帮助!

于 2011-10-14T01:12:43.720 回答