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

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

谢谢你的帮助

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 结构)的父级。 t每次更新codeBook时都会增加。但是,该更新可能不会增加所有codeBook_elements。所以...

t_last_update 是上次访问特定codeBook_element的时间。

失效帮助跟踪代码簿条目在代码簿中的“旧”程度。

negRun 表示运行时为负。它跟踪自访问密码本条目以来已经有多长时间了。如果时间太长,则认为它已过时,因此已删除以节省内存。

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

希望对您有所帮助!

10-07 19:21
查看更多