我正在尝试 codebook 方法,但并不真正理解 code_book 结构中 int t 的意义。它用于“计算每次访问”的变量,但这完全让我迷失了。算什么访问什么?通过谁?有人可以向我解释一下成员变量的用途吗?请尝试使用非技术术语
其次,在 ce 结构体中,int t_last_update 和 int stale 成员数据有什么意义? t_last_update 应该杀死过时的条目,但是什么是过时的条目?你说的“杀了它”是什么意思?对于 int stale,它应该计算最大负运行吗?什么是负运行以及它的用途是什么?
感谢您的帮助
PS:只是确认我需要什么:解释一下 code_book 结构中的 int t 的作用以及 ce 结构中的 int t_last_update 和 int _stale 的作用。
最佳答案
我假设您正在谈论 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 的时间。
陈旧有助于跟踪代码簿条目在代码簿中的“旧”程度。
negRun 代表负运行时间。它记录自访问密码簿条目以来已经过去了多长时间。如果时间太长,则会被认为是过时的并被删除以节省内存。
OpenCV 示例中的码本方法进行了更新。看看bgfg_codebook.cpp样本。
希望这对您有帮助!
关于c++ - OpenCV 背景减法/密码本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7760718/