<trclass="memdesc:a89893faef6c96e3b19bfeab86094af81"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Parse and apply parameters from a parameters map. <br/></td></tr>
<trclass="memdesc:a844ae27eb6d1f0674c8f7777451812c5"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Update the search index with newly added words. <br/></td></tr>
<trclass="memitem:a2998a6b11e102a2253ac592acf076841"id="r_a2998a6b11e102a2253ac592acf076841"><tdclass="memItemLeft"align="right"valign="top">virtual std::list< int > </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="classrtabmap_1_1VWDictionary.html#a2998a6b11e102a2253ac592acf076841">addNewWords</a> (const cv::Mat &descriptors, int signatureId)</td></tr>
<trclass="memdesc:a2998a6b11e102a2253ac592acf076841"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Add new visual words from descriptors. <br/></td></tr>
<trclass="memdesc:ad464ad961b0e4d4cd6dd7895e9ff3d59"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Add an existing visual word to the dictionary. <br/></td></tr>
<trclass="memitem:ac2f21a98b70e91ab2e8a07151c508d1c"id="r_ac2f21a98b70e91ab2e8a07151c508d1c"><tdclass="memItemLeft"align="right"valign="top">std::vector< int > </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="classrtabmap_1_1VWDictionary.html#ac2f21a98b70e91ab2e8a07151c508d1c">findNN</a> (const std::list<<aclass="el"href="classrtabmap_1_1VisualWord.html">VisualWord</a> * >&vws) const</td></tr>
<trclass="memdesc:ac2f21a98b70e91ab2e8a07151c508d1c"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Find nearest neighbor visual word IDs for a list of visual words. <br/></td></tr>
<trclass="memitem:aada11cf01b586ac8205f8bff0b1ab295"id="r_aada11cf01b586ac8205f8bff0b1ab295"><tdclass="memItemLeft"align="right"valign="top">std::vector< int > </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="classrtabmap_1_1VWDictionary.html#aada11cf01b586ac8205f8bff0b1ab295">findNN</a> (const cv::Mat &descriptors) const</td></tr>
<trclass="memdesc:aada11cf01b586ac8205f8bff0b1ab295"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Find nearest neighbor visual word IDs for descriptors. <br/></td></tr>
<trclass="memitem:aea2f0d043d043df37258dc225c62edec"id="r_aea2f0d043d043df37258dc225c62edec"><tdclass="memItemLeft"align="right"valign="top">bool </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="classrtabmap_1_1VWDictionary.html#aea2f0d043d043df37258dc225c62edec">addWordRef</a> (int wordId, int signatureId)</td></tr>
<trclass="memdesc:aea2f0d043d043df37258dc225c62edec"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Add a reference from a visual word to a signature. <br/></td></tr>
<trclass="memitem:ac4a70358ca2db8e63c67a30383a1d34b"id="r_ac4a70358ca2db8e63c67a30383a1d34b"><tdclass="memItemLeft"align="right"valign="top">void </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="classrtabmap_1_1VWDictionary.html#ac4a70358ca2db8e63c67a30383a1d34b">removeAllWordRef</a> (int wordId, int signatureId)</td></tr>
<trclass="memdesc:ac4a70358ca2db8e63c67a30383a1d34b"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Remove all references from a visual word to a signature. <br/></td></tr>
<trclass="memdesc:abbd007a028847ecbbdd50e3480ba95e3"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get an unused visual word by ID. <br/></td></tr>
<trclass="memdesc:af0b676e13c7dba437147520335289e97"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Set the last word ID (used when loading from database) <br/></td></tr>
<trclass="memdesc:a454639bff3d95b2f9dd346413981d5c5"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the Nearest Neighbor Distance Ratio (NNDR) threshold. <br/></td></tr>
<trclass="memdesc:a293c09f00caf84bb991d73983a5f22c8"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the count of words not yet indexed in the search tree. <br/></td></tr>
<trclass="memdesc:a65a99ae457b1c779233de57d190ca8da"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the ID of the last indexed word. <br/></td></tr>
<trclass="memdesc:a98447a880fdcf91709f00d00cfd4e54d"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the total number of active word-to-signature references. <br/></td></tr>
<trclass="memdesc:a6a0610e87964c3881dc70cae6cd9123c"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the count of words currently indexed in the search tree. <br/></td></tr>
<trclass="memdesc:a63ec6a9b915eb939c2650e623feb0576"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the memory used by the search index. <br/></td></tr>
<trclass="memdesc:ac5177a75f402538b50ec6c36bdbc7307"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the total memory used by the dictionary. <br/></td></tr>
<trclass="memdesc:ab1ec0db96328164864953f25d463bcbb"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the current nearest neighbor search strategy. <br/></td></tr>
<trclass="memdesc:a706e209f6228c02730dd8ea501ab5369"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Check if the dictionary is in incremental mode. <br/></td></tr>
<trclass="memdesc:a9f016aa45f3b3d5618d104fb799ca998"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Check if FLANN index is updated incrementally. <br/></td></tr>
<trclass="memdesc:ab14ef6e8fb979dce23f9a40a1faf8dff"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Set the dictionary to incremental mode. <br/></td></tr>
<trclass="memdesc:a5f3712744b9f7beb5da186a842f7d74a"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Set the dictionary to fixed mode and load from file. <br/></td></tr>
<trclass="memdesc:aa0bcdf4002305d36bb072c019d475f13"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Check if the dictionary has been modified since last save. <br/></td></tr>
<trclass="memdesc:a2864c406b3792dbfb7c8c334b6e44d41"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Serialize the search index to a byte vector. <br/></td></tr>
<trclass="memdesc:a3af1cce90b50dcb0f9dcd77e1fb08aad"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Deserialize the search index from a byte vector. <br/></td></tr>
<trclass="memdesc:a0a29d849a7c2b626407f453e5cb4b526"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Deserialize the search index from raw bytes. <br/></td></tr>
<trclass="memdesc:a1ba7cb31f8658980849ffd9ce76b3cb8"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Export the dictionary to files. <br/></td></tr>
<trclass="memdesc:a566aaf19cdc098587e88393e4140b351"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Clear all visual words and reset the dictionary. <br/></td></tr>
<trclass="memitem:a64b0aee7f33cbd4df26e2d0c14329e9d"id="r_a64b0aee7f33cbd4df26e2d0c14329e9d"><tdclass="memItemLeft"align="right"valign="top">std::vector< int > </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="classrtabmap_1_1VWDictionary.html#a64b0aee7f33cbd4df26e2d0c14329e9d">getUnusedWordIds</a> () const</td></tr>
<trclass="memdesc:a64b0aee7f33cbd4df26e2d0c14329e9d"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get IDs of all unused visual words. <br/></td></tr>
<trclass="memdesc:a117282f59ed918808d8116cd1f92f412"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the count of unused visual words. <br/></td></tr>
<trclass="memdesc:a7a506e15bf83d16cc98aaa34057216f4"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Remove words from the dictionary. <br/></td></tr>
<trclass="memdesc:a7092a6a6af93772ce89793c5e54a17cc"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the name of a nearest neighbor strategy. <br/></td></tr>
<trclass="memdesc:a2dbfec55a8921f52b642bf0dceea0c37"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Starting ID for visual words (typically 1) <br/></td></tr>
<trclass="memdesc:a83b1966a141848baeec5112c30bacf0f"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Invalid visual word ID (typically 0) <br/></td></tr>
<trclass="memdesc:a085d69ef577600000f397bd63abeaf69"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the next available visual word ID. <br/></td></tr>
<trclass="memdesc:adcb4739e09e27b20125880e9d3026383"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Map of visual word ID to <aclass="el"href="classrtabmap_1_1VisualWord.html"title="Represents a visual word (feature descriptor) used in the bag-of-words (BoW) model.">VisualWord</a> pointer. <br/></td></tr>
<trclass="memdesc:a5222c6a21307f0e4b9346c87db166b44"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Total count of active word-to-signature references. <br/></td></tr>
<divclass="textblock"><p>Manages a dictionary of visual words for visual place recognition and loop closure detection. </p>
<p>The <aclass="el"href="classrtabmap_1_1VWDictionary.html"title="Manages a dictionary of visual words for visual place recognition and loop closure detection.">VWDictionary</a> class maintains a collection of visual words (feature descriptors) and provides efficient nearest neighbor search capabilities. It supports both incremental and fixed dictionary modes:</p><ul>
<li>Incremental mode: New visual words are added dynamically as new images are processed</li>
<li>Fixed mode: A pre-computed dictionary is loaded from a file</li>
</ul>
<p>The class uses various nearest neighbor search strategies (FLANN, brute force, GPU-accelerated) to match descriptors efficiently. It tracks word references to signatures (images) and manages unused words for memory optimization.</p>
<dlclass="section note"><dt>Note</dt><dd>Visual words are identified by unique integer IDs starting from <aclass="el"href="classrtabmap_1_1VWDictionary.html#a2dbfec55a8921f52b642bf0dceea0c37"title="Starting ID for visual words (typically 1)">VWDictionary::ID_START</a></dd></dl>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00065">65</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<p>Nearest neighbor search strategies for descriptor matching. </p>
<p>The values are those of the Kp/NNStrategy parameter, saved in user configurations and databases: append, never renumber. The Vis/CorNNType parameter has strategies of its own, its values are mapped to these ones by RegistrationVis::nnStrategyFromCorNNType(). </p>
<tr><tdclass="fieldname"><aid="a9466840dd5ad3dc914543a97421c3655aaa1ea80fc9ca8809ad9b959e2e1564c5"name="a9466840dd5ad3dc914543a97421c3655aaa1ea80fc9ca8809ad9b959e2e1564c5"></a>kNNFlannKdTree </td><tdclass="fielddoc"><p>FLANN kd-tree index (fast for high-dimensional descriptors) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="a9466840dd5ad3dc914543a97421c3655a89ab72d0bccd61bb11abbd1edf1e6992"name="a9466840dd5ad3dc914543a97421c3655a89ab72d0bccd61bb11abbd1edf1e6992"></a>kNNFlannLSH </td><tdclass="fielddoc"><p>FLANN Locality-Sensitive Hashing (ideal for binary descriptors) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="a9466840dd5ad3dc914543a97421c3655a1745dd334296b8a41cf0c88dcc8a7d5d"name="a9466840dd5ad3dc914543a97421c3655a1745dd334296b8a41cf0c88dcc8a7d5d"></a>kNNBruteForce </td><tdclass="fielddoc"><p>Brute force CPU search. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="a9466840dd5ad3dc914543a97421c3655a602d99d5bdef453a39339a0b45979451"name="a9466840dd5ad3dc914543a97421c3655a602d99d5bdef453a39339a0b45979451"></a>kNNBruteForceGPU </td><tdclass="fielddoc"><p>Brute force GPU-accelerated search (requires CUDA) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="a9466840dd5ad3dc914543a97421c3655a994442dbb17b48ba9a9315edee24a7a1"name="a9466840dd5ad3dc914543a97421c3655a994442dbb17b48ba9a9315edee24a7a1"></a>kNNFlannKdTreeSingle </td><tdclass="fielddoc"><p>FLANN single exact kd-tree index (rebuilt whenever a word is added, for an index built once) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="a9466840dd5ad3dc914543a97421c3655a306c8d555b740267fa80a1ee673ef7c7"name="a9466840dd5ad3dc914543a97421c3655a306c8d555b740267fa80a1ee673ef7c7"></a>kNNNanoFlannKdTree </td><tdclass="fielddoc"><p>nanoflann kd-tree index (float descriptors only, incremental) </p>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00077">77</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
</div>
</div>
<h2class="groupheader">Constructor & Destructor Documentation</h2>
<p>Get the name of a nearest neighbor strategy. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">strategy</td><td>The strategy enum value </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>String representation of the strategy name </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00103">103</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<tr><tdclass="paramname">descriptors</td><td>Matrix of descriptors (one row per descriptor) </td></tr>
<tr><tdclass="paramname">signatureId</td><td>ID of the signature (image) these descriptors belong to </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>List of visual word IDs that were added or matched</dd></dl>
<p>For each descriptor, either matches it to an existing visual word (using nearest neighbor search with NNDR ratio) or creates a new visual word.</p>
<dlclass="section note"><dt>Note</dt><dd>If the dictionary is not incremental (fixed), NNDR is not applied and the closest existing visual word ID is always returned. If the dictionary is incremental, a new visual word is created if NNDR validation passes; otherwise, a reference to an existing visual word is added. </dd></dl>
<p>Add an existing visual word to the dictionary. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">vw</td><td>Pointer to the visual word to add (ownership is transferred)</td></tr>
</table>
</dd>
</dl>
<dlclass="section note"><dt>Note</dt><dd>The dictionary takes ownership of the <aclass="el"href="classrtabmap_1_1VisualWord.html"title="Represents a visual word (feature descriptor) used in the bag-of-words (BoW) model.">VisualWord</a> object </dd></dl>
<p>Find nearest neighbor visual word IDs for a list of visual words. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">vws</td><td>List of visual words to match </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>Vector of visual word IDs (one per input visual word)</dd></dl>
<dlclass="section note"><dt>Note</dt><dd>If the dictionary is not incremental (fixed), NNDR is not applied and the closest visual word ID is always returned. If the dictionary is incremental, a valid visual word ID is returned only if NNDR validation passes. </dd></dl>
<p>Find nearest neighbor visual word IDs for descriptors. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">descriptors</td><td>Matrix of descriptors (one row per descriptor) </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>Vector of visual word IDs (one per descriptor)</dd></dl>
<dlclass="section note"><dt>Note</dt><dd>If the dictionary is not incremental (fixed), NNDR is not applied and the closest visual word ID is always returned. If the dictionary is incremental, a valid visual word ID is returned only if NNDR validation passes. </dd></dl>
<tr><tdclass="paramname">id</td><td>Visual word ID </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>Pointer to the unused visual word, or nullptr if not found or not unused</dd></dl>
<dlclass="section note"><dt>Note</dt><dd>Ownership of the returned visual word still belongs to the dictionary. To transfer ownership to the caller, <aclass="el"href="classrtabmap_1_1VWDictionary.html#a7a506e15bf83d16cc98aaa34057216f4"title="Remove words from the dictionary.">removeWords()</a> must be called on this word. </dd></dl>
<p>Set the last word ID (used when loading from database) </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">id</td><td>Last word ID </td></tr>
</table>
</dd>
</dl>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00245">245</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<dlclass="section return"><dt>Returns</dt><dd>Map of visual word ID to <aclass="el"href="classrtabmap_1_1VisualWord.html"title="Represents a visual word (feature descriptor) used in the bag-of-words (BoW) model.">VisualWord</a> pointer </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00251">251</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<p>Get the Nearest Neighbor Distance Ratio (NNDR) threshold. </p>
<dlclass="section return"><dt>Returns</dt><dd>NNDR ratio value</dd></dl>
<p>The NNDR ratio is used to determine if a descriptor matches an existing visual word. If the ratio of distances to the first and second nearest neighbors is below this threshold, a match is accepted.</p>
<dlclass="section note"><dt>Note</dt><dd>The NNDR method was introduced in "Distinctive Image Features
from Scale-Invariant Keypoints" by David Lowe (IJCV 2004). </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00264">264</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<p>Get the count of words not yet indexed in the search tree. </p>
<dlclass="section return"><dt>Returns</dt><dd>Number of words waiting to be indexed </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00270">270</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<p>Get the total number of active word-to-signature references. </p>
<dlclass="section return"><dt>Returns</dt><dd>Total count of active references </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00282">282</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<p>Get the current nearest neighbor search strategy. </p>
<dlclass="section return"><dt>Returns</dt><dd>The current NNStrategy </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00315">315</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<p>Check if the dictionary is in incremental mode. </p>
<dlclass="section return"><dt>Returns</dt><dd>true if incremental, false if fixed </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00321">321</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<p>Check if FLANN index is updated incrementally. </p>
<dlclass="section return"><dt>Returns</dt><dd>true if incremental FLANN updates are enabled </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00327">327</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<p>Set the dictionary to fixed mode and load from file. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">dictionaryPath</td><td>Path to the dictionary file (.txt or .db format)</td></tr>
</table>
</dd>
</dl>
<p>Loads a pre-computed dictionary from a file. The dictionary file format in txt format should be: one line per visual word, with word ID followed by descriptor values. This cannot be called if words are already in the dictionary. </p>
<dlclass="section return"><dt>Returns</dt><dd>Vector of pointers to unused visual words</dd></dl>
<p>Unused words are visual words that have no references to any signatures.</p>
<dlclass="section note"><dt>Note</dt><dd>Ownership of the returned visual words still belongs to the dictionary. To transfer ownership to the caller, <aclass="el"href="classrtabmap_1_1VWDictionary.html#a7a506e15bf83d16cc98aaa34057216f4"title="Remove words from the dictionary.">removeWords()</a> must be called on these words. </dd></dl>
<dlclass="section return"><dt>Returns</dt><dd>Number of unused words </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00417">417</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<tr><tdclass="paramname">words</td><td>Vector of visual word pointers to remove</td></tr>
</table>
</dd>
</dl>
<dlclass="section note"><dt>Note</dt><dd>The caller is responsible for deleting the <aclass="el"href="classrtabmap_1_1VisualWord.html"title="Represents a visual word (feature descriptor) used in the bag-of-words (BoW) model.">VisualWord</a> objects </dd></dl>
<li>If true: Simple type conversion from CV_8UC1 to CV_32FC1 using OpenCV's convertTo(). Each byte value becomes a float value (output dimensions unchanged).</li>
<li>If false: Bit-by-bit expansion for binary descriptors (e.g., <aclass="el"href="classrtabmap_1_1ORB.html"title="ORB detector and descriptor (optional GPU).">ORB</a>, BRIEF). Each input byte (8 bits) is expanded into 8 float values (0.0f or 1.0f), one per bit. Output has 8x the number of columns (e.g., 32 bytes -> 256 floats). </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>Descriptors in 32-bit float format (CV_32FC1) </dd></dl>
<li>If true: Simple type conversion from CV_32FC1 to CV_8UC1 using OpenCV's convertTo(). Each float value becomes a byte value (output dimensions unchanged).</li>
<li>If false: Bit-by-bit packing for binary descriptors. Each group of 8 float values (0.0f or 1.0f) is packed into 1 byte (8 bits), one bit per float. Input must have columns divisible by 8. Output has 1/8 the number of columns (e.g., 256 floats -> 32 bytes). </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>Descriptors in binary format (CV_8UC1) </dd></dl>
<p>Starting ID for visual words (typically 1) </p>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00091">91</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00096">96</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<p>Map of visual word ID to <aclass="el"href="classrtabmap_1_1VisualWord.html"title="Represents a visual word (feature descriptor) used in the bag-of-words (BoW) model.">VisualWord</a> pointer. </p>
<dlclass="section note"><dt>Note</dt><dd>All visual words (used and unused) are stored here </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00474">474</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
<p>Total count of active word-to-signature references. </p>
<dlclass="section note"><dt>Note</dt><dd>Used to track all references for updating common signatures </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="VWDictionary_8h_source.html#l00480">480</a> of file <aclass="el"href="VWDictionary_8h_source.html">VWDictionary.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<liclass="footer">Generated by <ahref="https://www.doxygen.org/index.html"><imgclass="footer"src="doxygen.svg"width="104"height="31"alt="doxygen"/></a> 1.9.8 </li>