Commit 4cb426dfba6db3aacbe643344ff93bd30135e2cf

Authored by Jordan Cheney
1 parent 4c5dbb6c

More updates to our docs

docs/docs/abstractions.md deleted
1 -# C++ Plugin API  
2 -  
3 -The in-depth documentation for the classes and abstractions in the C++ plugin API.  
4 -  
5 ----  
6 -  
7 -## File  
8 -  
9 -A file path with associated metadata.  
10 -  
11 -The File is one of two important data structures in OpenBR (the Template is the other).  
12 -It is typically used to store the path to a file on disk with associated metadata.  
13 -The ability to associate a key/value metadata table with the file helps keep the API simple while providing customizable behavior.  
14 -  
15 -When querying the value of a metadata key, the value will first try to be resolved against the file's private metadata table.  
16 -If the key does not exist in its local table then it will be resolved against the properties in the global Context.  
17 -By design file metadata may be set globally using Context::setProperty to operate on all files.  
18 -  
19 -Files have a simple grammar that allow them to be converted to and from strings.  
20 -If a string ends with a \c ] or \c ) then the text within the final \c [] or \c () are parsed as comma separated metadata fields.  
21 -By convention, fields within \c [] are expected to have the format <tt>[key1=value1, key2=value2, ..., keyN=valueN]</tt> where order is irrelevant.  
22 -Fields within \c () are expected to have the format <tt>(value1, value2, ..., valueN)</tt> where order matters and the key context dependent.  
23 -The left hand side of the string not parsed in a manner described above is assigned to #name.  
24 -  
25 -Values are not necessarily stored as strings in the metadata table.  
26 -The system will attempt to infer and convert them to their "native" type.  
27 -The conversion logic is as follows:  
28 -  
29 -1. If the value starts with \c [ and ends with \c ] then it is treated as a comma separated list and represented with \c QVariantList. Each value in the list is parsed recursively.  
30 -2. If the value starts with \c ( and ends with \c ) and contains four comma separated elements, each convertable to a floating point number, then it is represented with \c QRectF.  
31 -3. If the value starts with \c ( and ends with \c ) and contains two comma separated elements, each convertable to a floating point number, then it is represented with \c QPointF.  
32 -4. If the value is convertable to a floating point number then it is represented with \c float.  
33 -5. Otherwise, it is represented with \c QString.  
34 -  
35 -Metadata keys fall into one of two categories:  
36 -* \c camelCaseKeys are inputs that specify how to process the file.  
37 -* \c Capitalized_Underscored_Keys are outputs computed from processing the file.  
38 -  
39 -Below are some of the most commonly occuring standardized keys:  
40 -  
41 -Key | Value | Description  
42 ---- | ---- | -----------  
43 -name | QString | Contents of #name  
44 -separator | QString | Seperate #name into multiple files  
45 -Index | int | Index of a template in a template list  
46 -Confidence | float | Classification/Regression quality  
47 -FTE | bool | Failure to enroll  
48 -FTO | bool | Failure to open  
49 -*_X | float | Position  
50 -*_Y | float | Position  
51 -*_Width | float | Size  
52 -*_Height | float | Size  
53 -*_Radius | float | Size  
54 -Label | QString | Class label  
55 -Theta | float | Pose  
56 -Roll | float | Pose  
57 -Pitch | float | Pose  
58 -Yaw | float | Pose  
59 -Points | QList<QPointF> | List of unnamed points  
60 -Rects | QList<Rect> | List of unnamed rects  
61 -Age | float | Age used for demographic filtering  
62 -Gender | QString | Subject gender  
63 -Train | bool | The data is for training, as opposed to enrollment  
64 -_* | * | Reserved for internal use  
65 -  
66 -### Members  
67 -  
68 -#### Name  
69 -  
70 -Path to a file on disk  
71 -  
72 -#### FTE  
73 -  
74 -'Failed to enroll'. If true this file failed to be processed somewhere in the template enrollment algorithm  
75 -  
76 -#### m_metadata  
77 -  
78 -Map for storing metadata. It is a <a href=http://doc.qt.io/qt-5/QString.html>QString</a>, <a href=http://doc.qt.io/qt-5/qvariant.html>QVariant</a> key value pairing.  
79 -  
80 ----  
81 -  
82 -## Template  
83 -  
84 ----  
85 -  
86 -## Transform  
87 -  
88 ----  
89 -  
90 -## UntrainableTransform  
91 -  
92 ----  
93 -  
94 -## MetaTransform  
95 -  
96 ----  
97 -  
98 -## UntrainableMetaTransform  
99 -  
100 ----  
101 -  
102 -## MetadataTransform  
103 -  
104 ----  
105 -  
106 -## UntrainableMetadataTransform  
107 -  
108 ----  
109 -  
110 -## TimeVaryingTransform  
111 -  
112 ----  
113 -  
114 -## Distance  
115 -  
116 ----  
117 -  
118 -## UntrainableDistance  
119 -  
120 ----  
121 -  
122 -## Output  
123 -  
124 ----  
125 -  
126 -## MatrixOutput  
127 -  
128 ----  
129 -  
130 -## Format  
131 -  
132 ----  
133 -  
134 -## Representation  
135 -  
136 ----  
137 -  
138 -## Classifier  
docs/docs/contribute.md 0 → 100644
docs/docs/docs/c_api.md 0 → 100644
docs/docs/docs/cl_api.md 0 → 100644
docs/docs/docs/cpp_api.md 0 → 100644
  1 +# Context
  2 +
  3 +---
  4 +
  5 +# File
  6 +
  7 +A file path with associated metadata.
  8 +
  9 +The File is one of two important data structures in OpenBR (the Template is the other).
  10 +It is typically used to store the path to a file on disk with associated metadata.
  11 +The ability to associate a key/value metadata table with the file helps keep the API simple while providing customizable behavior.
  12 +
  13 +When querying the value of a metadata key, the value will first try to be resolved against the file's private metadata table.
  14 +If the key does not exist in its local table then it will be resolved against the properties in the global Context.
  15 +By design file metadata may be set globally using Context::setProperty to operate on all files.
  16 +
  17 +Files have a simple grammar that allow them to be converted to and from strings.
  18 +If a string ends with a **]** or **)** then the text within the final **[]** or **()** are parsed as comma separated metadata fields.
  19 +By convention, fields within **[]** are expected to have the format <tt>[key1=value1, key2=value2, ..., keyN=valueN]</tt> where order is irrelevant.
  20 +Fields within **()** are expected to have the format <tt>(value1, value2, ..., valueN)</tt> where order matters and the key context dependent.
  21 +The left hand side of the string not parsed in a manner described above is assigned to #name.
  22 +
  23 +Values are not necessarily stored as strings in the metadata table.
  24 +The system will attempt to infer and convert them to their "native" type.
  25 +The conversion logic is as follows:
  26 +
  27 +1. If the value starts with **[** and ends with **]** then it is treated as a comma separated list and represented with <a href=http://doc.qt.io/qt-5/qvariant.html#QVariantList-typedef>QVariantList</a>. Each value in the list is parsed recursively.
  28 +2. If the value starts with **(** and ends with **)** and contains four comma separated elements, each convertable to a floating point number, then it is represented with <a href=http://doc.qt.io/qt-4.8/qrectf.html>QRectF</a>.
  29 +3. If the value starts with **(** and ends with **)** and contains two comma separated elements, each convertable to a floating point number, then it is represented with <a href=http://doc.qt.io/qt-4.8/qpointf.html>QPointF</a>.
  30 +4. If the value is convertable to a floating point number then it is represented with <tt>float</tt>.
  31 +5. Otherwise, it is represented with <a href=http://doc.qt.io/qt-5/QString.html>QString</a>.
  32 +
  33 +Metadata keys fall into one of two categories:
  34 +* camelCaseKeys are inputs that specify how to process the file.
  35 +* Capitalized_Underscored_Keys are outputs computed from processing the file.
  36 +
  37 +Below are some of the most commonly occuring standardized keys:
  38 +
  39 +Key | Value | Description
  40 +--- | ---- | -----------
  41 +name | QString | Contents of #name
  42 +separator | QString | Seperate #name into multiple files
  43 +Index | int | Index of a template in a template list
  44 +Confidence | float | Classification/Regression quality
  45 +FTE | bool | Failure to enroll
  46 +FTO | bool | Failure to open
  47 +*_X | float | Position
  48 +*_Y | float | Position
  49 +*_Width | float | Size
  50 +*_Height | float | Size
  51 +*_Radius | float | Size
  52 +Label | QString | Class label
  53 +Theta | float | Pose
  54 +Roll | float | Pose
  55 +Pitch | float | Pose
  56 +Yaw | float | Pose
  57 +Points | QList<QPointF> | List of unnamed points
  58 +Rects | QList<Rect> | List of unnamed rects
  59 +Age | float | Age used for demographic filtering
  60 +Gender | QString | Subject gender
  61 +Train | bool | The data is for training, as opposed to enrollment
  62 +_* | * | Reserved for internal use
  63 +
  64 +---
  65 +
  66 +## Members
  67 +
  68 +### Name
  69 +
  70 +Path to a file on disk
  71 +
  72 +### FTE
  73 +
  74 +Failed to enroll. If true this file failed to be processed somewhere in the template enrollment algorithm
  75 +
  76 +### m_metadata
  77 +
  78 +Map for storing metadata. It is a <a href=http://doc.qt.io/qt-5/QString.html>QString</a>, <a href=http://doc.qt.io/qt-5/qvariant.html>QVariant</a> key value pairing.
  79 +
  80 +---
  81 +
  82 +## Constructors
  83 +
  84 +### File()
  85 +
  86 +Default constructor. Sets [FTE](#fte) to false.
  87 +
  88 +### File(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &file)
  89 +
  90 +Initializes the file by calling the private function init.
  91 +
  92 +### File(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &file, const <a href=http://doc.qt.io/qt-5/qvariant.html>QVariant</a> &label)
  93 +
  94 +Initializes the file by calling the private function init. Append label to the [metadata](#m_metadata) using the key "Label".
  95 +
  96 +### File(const char \*file)
  97 +
  98 +Initializes the file with a c-style string.
  99 +
  100 +### File(const <a href=http://doc.qt.io/qt-5/qvariant.html#QVariantMap-typedef>QVariantMap</a> &metadata)
  101 +
  102 +Sets [FTE](#file#fte) to false and sets the [file metadata](#m_metadata) to metadata.
  103 +
  104 +---
  105 +
  106 +## Static Functions
  107 +
  108 +
  109 +### static <a href=http://doc.qt.io/qt-5/qvariant.html>QVariant</a> parse(<a href=http://doc.qt.io/qt-5/QString.html>QString</a> &value) const
  110 +
  111 +Try to convert value to a <a href=http://doc.qt.io/qt-4.8/qpointf.html>QPointF</a>, <a href=http://doc.qt.io/qt-4.8/qrectf.html>QRectF</a>, int or float. If a conversion is possible it returns the converted value, otherwise it returns the unconverted string.
  112 +
  113 + QString point = "(1, 1)";
  114 + QString rect = "(1, 1, 5, 5)";
  115 + QString integer = "1";
  116 + QString fp = "1.0";
  117 + QString string = "Hello World";
  118 +
  119 + File::parse(point); // returns QVariant(QPointF, QPointF(1, 1))
  120 + File::parse(rect); // returns QVariant(QRectF, QRectF(1, 1, 5x5))
  121 + File::parse(integer); // returns QVariant(int, 1)
  122 + File::parse(fp); // returns QVariant(float, 1.0f)
  123 + File::parse(string); // returns QVariant(QString, "Hello World")
  124 +
  125 +### static <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;<a href=http://doc.qt.io/qt-5/qvariant.html>QVariant</a>&gt; values(const <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;U&gt; &fileList, const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key)
  126 +
  127 +This function requires a type specification in place of U. Valid types are [File](#file) and <a href=http://doc.qt.io/qt-5/QString.html>QString</a>. Returns a list of the values of the key in each of the given files.
  128 +
  129 + File f1, f2;
  130 + f1.set("Key1", QVariant::fromValue<float>(1));
  131 + f1.set("Key2", QVariant::fromValue<float>(2));
  132 + f2.set("Key1", QVariant::fromValue<float>(3));
  133 +
  134 + File::values<File>(QList<File>() << f1 << f2, "Key1"); // returns [QVariant(float, 1),
  135 + // QVariant(float, 3)]
  136 +
  137 +### static <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;T&gt; get(const <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;U&gt; &fileList, const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key)
  138 +
  139 +This function requires a type specification in place of T and U. Valid types for U are [File](#file) and <a href=http://doc.qt.io/qt-5/QString.html>QString</a>. T can be any type. Returns a list of the values of the key in each of the given files. If the key doesn't exist in any of the files or the value cannot be converted to type T an error is thrown.
  140 +
  141 + File f1, f2;
  142 + f1.set("Key1", QVariant::fromValue<float>(1));
  143 + f1.set("Key2", QVariant::fromValue<float>(2));
  144 + f2.set("Key1", QVariant::fromValue<float>(3));
  145 +
  146 + File::get<float, File>(QList<File>() << f1 << f2, "Key1"); // returns [1., 3.]
  147 + File::get<float, File>(QList<File>() << f1 << f2, "Key2"); // Error: Key doesn't exist in f2
  148 + File::get<QRectF, File>(QList<File>() << f1 << f2, "Key1"); // Error: float is not convertable to QRectF
  149 +
  150 +### static <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;T&gt; get(const <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;U&gt; &fileList, const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key, const T &defaultValue)
  151 +
  152 +This function requires a type specification in place of T and U. Valid types for U are [File](#file) and <a href=http://doc.qt.io/qt-5/QString.html>QString</a>. T can be any type. Returns a list of the values of the key in each of the given files. If the key doesn't exist in any of the files or the value cannot be converted to type T the given defaultValue is returned.
  153 +
  154 + File f1, f2;
  155 + f1.set("Key1", QVariant::fromValue<float>(1));
  156 + f1.set("Key2", QVariant::fromValue<float>(2));
  157 + f2.set("Key1", QVariant::fromValue<float>(3));
  158 +
  159 + File::get<float, File>(QList<File>() << f1 << f2, "Key1"); // returns [1., 3.]
  160 + File::get<float, File>(QList<File>() << f1 << f2, "Key2", QList<float>() << 1); // returns [1.]
  161 + File::get<QRectF, File>(QList<File>() << f1 << f2, "Key1, QList<QRectF>()"); // returns []
  162 +
  163 +### <a href=http://doc.qt.io/qt-5/qdebug.html>QDebug</a> operator <<(<a href=http://doc.qt.io/qt-5/qdebug.html>QDebug</a> dbg, const [File](#file) &file)
  164 +
  165 +Calls [flat](#qstring-flat-const) on the given file and that streams that file to stderr.
  166 +
  167 + File file("../path/to/pictures/picture.jpg");
  168 + file.set("Key", QString("Value"));
  169 +
  170 + qDebug() << file; // "../path/to/pictures/picture.jpg[Key=Value]" streams to stderr
  171 +
  172 +### <a href=http://doc.qt.io/qt-5/qdatastream.html>QDataStream</a> &operator <<(<a href=http://doc.qt.io/qt-5/qdatastream.html>QDataStream</a> &stream, const [File](#file) &file)
  173 +
  174 +Serialize a file to a data stream.
  175 +
  176 + void store(QDataStream &stream)
  177 + {
  178 + File file("../path/to/pictures/picture.jpg");
  179 + file.set("Key", QString("Value"));
  180 +
  181 + stream << file; // "../path/to/pictures/picture.jpg[Key=Value]" serialized to the stream
  182 + }
  183 +
  184 +### <a href=http://doc.qt.io/qt-5/qdatastream.html>QDataStream</a> &operator >>(<a href=http://doc.qt.io/qt-5/qdatastream.html>QDataStream</a> &stream, [File](#file) &file)
  185 +
  186 +Deserialize a file from a data stream.
  187 +
  188 + void load(QDataStream &stream)
  189 + {
  190 + File in("../path/to/pictures/picture.jpg");
  191 + in.set("Key", QString("Value"));
  192 +
  193 + stream << in; // "../path/to/pictures/picture.jpg[Key=Value]" serialized to the stream
  194 +
  195 + File out;
  196 + stream >> out;
  197 +
  198 + out.name; // returns "../path/to/pictures/picture.jpg"
  199 + out.flat(); // returns "../path/to/pictures/picture.jpg[Key=Value]"
  200 + }
  201 +
  202 +---
  203 +
  204 +## Functions
  205 +
  206 +### Operator <a href=http://doc.qt.io/qt-5/QString.html>QString</a>() const
  207 +
  208 +returns [name](#name). Allows Files to be used as <a href=http://doc.qt.io/qt-5/QString.html>QString</a>.
  209 +
  210 +### <a href=http://doc.qt.io/qt-5/QString.html>QString</a> flat() const
  211 +
  212 +Returns the [name](#name) and [metadata](#m_metadata) as string.
  213 +
  214 + File file("../path/to/pictures/picture.jpg");
  215 + file.set("Key1", QVariant::fromValue<float>(1));
  216 + file.set("Key2", QVariant::fromValue<float>(2));
  217 +
  218 + file.flat(); // returns "../path/to/pictures/picture.jpg[Key1=1,Key2=2]"
  219 +
  220 +### <a href=http://doc.qt.io/qt-5/QString.html>QString</a> hash() const
  221 +
  222 +Returns a hash of the file.
  223 +
  224 + File file("../path/to/pictures/picture.jpg");
  225 + file.set("Key1", QVariant::fromValue<float>(1));
  226 + file.set("Key2", QVariant::fromValue<float>(2));
  227 +
  228 + file.hash(); // returns "kElVwY"
  229 +
  230 +### <a href=http://doc.qt.io/qt-5/qstringlist.html>QStringList</a> localKeys() const
  231 +
  232 +Returns an immutable version of the local metadata keys gotten by calling [metadata](#metadata).keys().
  233 +
  234 + File file("../path/to/pictures/picture.jpg");
  235 + file.set("Key1", QVariant::fromValue<float>(1));
  236 + file.set("Key2", QVariant::fromValue<float>(2));
  237 +
  238 + file.localKeys(); // returns [Key1, Key2]
  239 +
  240 +### <a href=http://doc.qt.io/qt-5/qvariant.html#QVariantMap-typedef>QVariantMap</a> localMetadata() const
  241 +
  242 +returns an immutable version of the local [metadata](#m_metadata).
  243 +
  244 + File file("../path/to/pictures/picture.jpg");
  245 + file.set("Key1", QVariant::fromValue<float>(1));
  246 + file.set("Key2", QVariant::fromValue<float>(2));
  247 +
  248 + file.localMetadata(); // return QMap(("Key1", QVariant(float, 1)) ("Key2", QVariant(float, 2)))
  249 +
  250 +### void append(<a href=http://doc.qt.io/qt-5/qvariant.html#QVariantMap-typedef>QVariantMap</a> &localMetadata)
  251 +
  252 +Add new metadata fields to [metadata](#m_metadata).
  253 +
  254 + File f();
  255 + f.set("Key1", QVariant::fromValue<float>(1));
  256 +
  257 + QVariantMap map;
  258 + map.insert("Key2", QVariant::fromValue<float>(2));
  259 + map.insert("Key3", QVariant::fromValue<float>(3));
  260 +
  261 + f.append(map);
  262 + f.flat(); // returns "[Key1=1, Key2=2, Key3=3]"
  263 +
  264 +### void append(const [File](#file) &other)
  265 +
  266 +Append another file using the **;** separator. The file names are combined with the separator in between them. The metadata fields are combined. An additional field describing the separator is appended to the metadata.
  267 +
  268 + File f1("../path/to/pictures/picture1.jpg");
  269 + f1.set("Key1", QVariant::fromValue<float>(1));
  270 +
  271 + File f2("../path/to/pictures/picture2.jpg");
  272 + f2.set("Key2", QVariant::fromValue<float>(2));
  273 + f2.set("Key3", QVariant::fromValue<float>(3));
  274 +
  275 + f1.append(f2);
  276 + f1.name; // return "../path/to/pictures/picture1.jpg;../path/to/pictures/picture2.jpg"
  277 + f1.localKeys(); // returns "[Key1, Key2, Key3, separator]"
  278 +
  279 +
  280 +### File &operator +=(const <a href=http://doc.qt.io/qt-5/qmap.html>QMap</a><<a href=http://doc.qt.io/qt-5/QString.html>QString</a>, <a href=http://doc.qt.io/qt-5/qvariant.html>QVariant</a>> &other)
  281 +
  282 +Shortcut operator to call [append](#void-appendqvariantmap-localmetadata).
  283 +
  284 +### File &operator +=(const [File](#file) &other)
  285 +
  286 +Shortcut operator to call [append](#void-appendconst-file-other).
  287 +
  288 +### <a href=http://doc.qt.io/qt-5/qlist.html>QList</a><[File](#file)> split() const
  289 +
  290 +Parse [name](#name) and split on the **;** separator. Each split file has the same [metadata](#m_metadata) as the joined file.
  291 +
  292 + File f1("../path/to/pictures/picture1.jpg");
  293 + f1.set("Key1", QVariant::fromValue<float>(1));
  294 +
  295 + f1.split(); // returns [../path/to/pictures/picture1.jpg[Key1=1]]
  296 +
  297 + File f2("../path/to/pictures/picture2.jpg");
  298 + f2.set("Key2", QVariant::fromValue<float>(2));
  299 + f2.set("Key3", QVariant::fromValue<float>(3));
  300 +
  301 + f1.append(f2);
  302 + f1.split(); // returns [../path/to/pictures/picture1.jpg[Key1=1, Key2=2, Key3=3, separator=;],
  303 + // ../path/to/pictures/picture2.jpg[Key1=1, Key2=2, Key3=3, separator=;]]
  304 +
  305 +### <a href=http://doc.qt.io/qt-5/qlist.html>QList</a><[File](#file)> split(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &separator) const
  306 +
  307 +Split the file on the given separator. Each split file has the same [metadata](#m_metadata) as the joined file.
  308 +
  309 + File f("../path/to/pictures/picture1.jpg,../path/to/pictures/picture2.jpg");
  310 + f.set("Key1", QVariant::fromValue<float>(1));
  311 + f.set("Key2", QVariant::fromValue<float>(2));
  312 +
  313 + f.split(","); // returns [../path/to/pictures/picture1.jpg[Key1=1, Key2=2],
  314 + ../path/to/pictures/picture2.jpg[Key1=1, Key2=2]]
  315 +
  316 +### void setParameter(int index, const <a href=http://doc.qt.io/qt-5/qvariant.html>QVariant</a> &value)
  317 +
  318 +Insert a keyless value into the [metadata](#m_metadata).
  319 +
  320 + File f;
  321 + f.set("Key1", QVariant::fromValue<float>(1));
  322 + f.set("Key2", QVariant::fromValue<float>(2));
  323 +
  324 + f.setParameter(1, QVariant::fromValue<float>(3));
  325 + f.setParameter(5, QVariant::fromValue<float>(4));
  326 +
  327 + f.flat(); // returns "[Key1=1, Key2=2, Arg1=3, Arg5=4]"
  328 +
  329 +### bool operator ==(const char \*other) const
  330 +
  331 +Compare [name](#name) to c-style string other.
  332 +
  333 + File f("picture.jpg");
  334 +
  335 + f == "picture.jpg"; // returns true
  336 + f == "other_picture.jpg"; // returns false
  337 +
  338 +### bool operator ==(const [File](#file) &other) const
  339 +
  340 +Compare [name](#name) and [metadata](#m_metadata) to another file name and metadata for equality.
  341 +
  342 + File f1("picture1.jpg");
  343 + File f2("picture1.jpg");
  344 +
  345 + f1 == f2; // returns true
  346 +
  347 + f1.set("Key1", QVariant::fromValue<float>(1));
  348 + f2.set("Key2", QVariant::fromValue<float>(2));
  349 +
  350 + f1 == f2; // returns false (metadata doesn't match)
  351 +
  352 +### bool operator !=(const [File](#file) &other) const
  353 +
  354 +Compare [name](#name) and [metadata](#m_metadata) to another file name and metadata for inequality.
  355 +
  356 + File f1("picture1.jpg");
  357 + File f2("picture1.jpg");
  358 +
  359 + f1 != f2; // returns false
  360 +
  361 + f1.set("Key1", QVariant::fromValue<float>(1));
  362 + f2.set("Key2", QVariant::fromValue<float>(2));
  363 +
  364 + f1 != f2; // returns true (metadata doesn't match)
  365 +
  366 +### bool operator <(const [File](#file) &other) const
  367 +
  368 +Compare [name](#name) to a different file name.
  369 +
  370 +### bool operator <=(const [File](#file) &other) const
  371 +
  372 +Compare [name](#name) to a different file name.
  373 +
  374 +### bool operator >(const [File](#file) &other) const
  375 +
  376 +Compare [name](#name) to a different file name.
  377 +
  378 +### bool operator >=(const [File](#file) &other) const
  379 +
  380 +Compare [name](#name) to a different file name.
  381 +
  382 +### bool isNull() const
  383 +
  384 +Returns true if [name](#name) and [metadata](#m_metadata) are empty and false otherwise.
  385 +
  386 + File f;
  387 + f.isNull(); // returns true
  388 +
  389 + f.set("Key1", QVariant::fromValue<float>(1));
  390 + f.isNull(); // returns false
  391 +
  392 +### bool isTerminal() const
  393 +
  394 +Returns true if [name](#name) equals "Terminal".
  395 +
  396 +### bool exists() const
  397 +
  398 +Returns true if the file at [name](#name) exists on disk.
  399 +
  400 +### <a href=http://doc.qt.io/qt-5/QString.html>QString</a> fileName() const
  401 +
  402 +Returns the file's base name and extension.
  403 +
  404 + File file("../path/to/pictures/picture.jpg");
  405 + file.fileName(); // returns "picture.jpg"
  406 +
  407 +### <a href=http://doc.qt.io/qt-5/QString.html>QString</a> baseName() const
  408 +
  409 +Returns the file's base name.
  410 +
  411 + File file("../path/to/pictures/picture.jpg");
  412 + file.baseName(); // returns "picture"
  413 +
  414 +### <a href=http://doc.qt.io/qt-5/QString.html>QString</a> suffix() const
  415 +
  416 +Returns the file's extension.
  417 +
  418 + File file("../path/to/pictures/picture.jpg");
  419 + file.suffix(); // returns "jpg"
  420 +
  421 +### <a href=http://doc.qt.io/qt-5/QString.html>QString</a> path() const
  422 +
  423 +Return's the path of the file, excluding the name.
  424 +
  425 + File file("../path/to/pictures/picture.jpg");
  426 + file.suffix(); // returns "../path/to/pictures"
  427 +
  428 +### <a href=http://doc.qt.io/qt-5/QString.html>QString</a> resolved() const
  429 +
  430 +Returns [name](#name). If name does not exist it prepends name with the path in Globals->path.
  431 +
  432 +### bool contains(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key) const
  433 +
  434 +Returns True if the key is in the [metadata](#m_metadata) and False otherwise.
  435 +
  436 + File file;
  437 + file.set("Key1", QVariant::fromValue<float>(1));
  438 +
  439 + file.contains("Key1"); // returns true
  440 + file.contains("Key2"); // returns false
  441 +
  442 +### bool contains(const <a href=http://doc.qt.io/qt-4.8/qstringlist.html>QStringList</a> &keys) const
  443 +
  444 +Returns True if all of the keys are in the [metadata](#m_metadata) and False otherwise.
  445 +
  446 + File file;
  447 + file.set("Key1", QVariant::fromValue<float>(1));
  448 + file.set("Key2", QVariant::fromValue<float>(2));
  449 +
  450 + file.contains(QStringList("Key1")); // returns true
  451 + file.contains(QStringList() << "Key1" << "Key2") // returns true
  452 + file.contains(QStringList() << "Key1" << "Key3"); // returns false
  453 +
  454 +### <a href=http://doc.qt.io/qt-5/qvariant.html>QVariant</a> value(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key) const
  455 +
  456 +Returns the value associated with key in the [metadata](#m_metadata).
  457 +
  458 + File file;
  459 + file.set("Key1", QVariant::fromValue<float>(1));
  460 + file.value("Key1"); // returns QVariant(float, 1)
  461 +
  462 +### void set(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key, const <a href=http://doc.qt.io/qt-5/qvariant.html>QVariant</a> &value)
  463 +
  464 +Insert or overwrite the [metadata](#m_metadata) key with the given value.
  465 +
  466 + File f;
  467 + f.flat(); // returns ""
  468 +
  469 + f.set("Key1", QVariant::fromValue<float>(1));
  470 + f.flat(); // returns "[Key1=1]"
  471 +
  472 +### void set(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key, const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &value)
  473 +
  474 +Insert or overwrite the [metadata](#m_metadata) key with the given value.
  475 +
  476 + File f;
  477 + f.flat(); // returns ""
  478 +
  479 + f.set("Key1", QString("1"));
  480 + f.flat(); // returns "[Key1=1]"
  481 +
  482 +### void setList(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key, const <a href=>QList</a><T> &value)
  483 +
  484 +This function requires a type specification in place of T. Insert or overwrite the [metadata](#m_metadata) key with the value. The value will remain a list and should be queried with the function [getList](#qlistt-getlistconst-qstring-key-const).
  485 +
  486 + File file;
  487 +
  488 + QList<float> list = QList<float>() << 1 << 2 << 3;
  489 + file.setList<float>("List", list);
  490 + file.getList<float>("List"); // return [1., 2. 3.]
  491 +
  492 +### void remove(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key)
  493 +
  494 +Remove the key value pair associated with the given key from the [metadata](#metadata)
  495 +
  496 + File f;
  497 + f.set("Key1", QVariant::fromValue<float>(1));
  498 + f.set("Key2", QVariant::fromValue<float>(2));
  499 +
  500 + f.flat(); // returns "[Key1=1, Key2=2]"
  501 +
  502 + f.remove("Key1");
  503 + f.flat(); // returns "[Key2=2]"
  504 +
  505 +### T get(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key)
  506 +
  507 +This function requires a type specification in place of T. Try and get the value associated with the given key in the [metadata](#m_metadata). If the key does not exist or cannot be converted to the given type an error is thrown.
  508 +
  509 + File f;
  510 + f.set("Key1", QVariant::fromValue<float>(1));
  511 +
  512 + f.get<float>("Key1"); // returns 1
  513 + f.get<float>("Key2"); // Error: Key2 is not in the metadata
  514 + f.get<QRectF>("Key1"); // Error: A float can't be converted to a QRectF
  515 +
  516 +### T get(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key, const T &defaultValue)
  517 +
  518 +This function requires a type specification in place of T. Try and get the value associated with the given key in the [metadata](#m_metadata). If the key does not exist or cannot be converted to the given type the defaultValue is returned.
  519 +
  520 + File f;
  521 + f.set("Key1", QVariant::fromValue<float>(1));
  522 +
  523 + f.get<float>("Key1", 5); // returns 1
  524 + f.get<float>("Key2", 5); // returns 5
  525 + f.get<QRectF>("Key1", QRectF(0, 0, 10, 10)); // returns QRectF(0, 0, 10x10)
  526 +
  527 +### bool getBool(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key, bool defaultValue = false)
  528 +
  529 +This is a specialization of [get](#t-getconst-qstring-key) for the boolean type. If the key is not in the [metadata](#m_metadata) the defaultValue is returned. If the key is in the metadata but the value cannot be converted to a bool **true** is returned. If the key is found and the value can be converted to a bool the value is returned.
  530 +
  531 + File f;
  532 + f.set("Key1", QVariant::fromValue<bool>(true));
  533 + f.set("Key2", QVariant::fromValue<float>(10));
  534 +
  535 + f.getBool("Key1"); // returns true
  536 + f.getBool("Key2") // returns true (key found)
  537 + f.getBool("Key3"); // returns false (default value)
  538 + f.getBool("Key3", true); // returns true (default value)
  539 +
  540 +### <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;T&gt; getList(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key) const
  541 +
  542 +This function requires a type specification in place of T. Similar to [get](#t-getconst-qstring-key) only this returns a list. If the key is not found or the value cannot be converted into a <a href=http://doc.qt.io/qt-5/QList.html>QList</a><T> an error is thrown.
  543 +
  544 + File file;
  545 +
  546 + QList<float> list = QList<float>() << 1 << 2 << 3;
  547 + file.setList<float>("List", list);
  548 +
  549 + file.getList<float>("List"); // return [1., 2. 3.]
  550 + file.getList<QRectF>("List"); // Error: float cannot be converted to QRectF
  551 + file.getList<float>("Key"); // Error: key doesn't exist
  552 +
  553 +### <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;T&gt; getList(const <a href=http://doc.qt.io/qt-5/QString.html>QString</a> &key, const <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;T&gt; &defaultValue) const
  554 +
  555 +This function requires a type specification in place of T. Similar to [get](#t-getconst-qstring-key-const-t-defaultvalue) only this returns a list. If the key is not found or the value cannot be converted into a <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;T&gt; the supplied defaultValue is returned.
  556 +
  557 + File file;
  558 +
  559 + QList<float> list = QList<float>() << 1 << 2 << 3;
  560 + file.setList<float>("List", list);
  561 +
  562 + file.getList<float>("List", QList<float>()); // return [1., 2. 3.]
  563 + file.getList<QRectF>("List", QList<QRectF>()); // return []
  564 + file.getList<float>("Key", QList<float>() << 1 << 2 << 3); // return [1., 2., 3.]
  565 +
  566 +### <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;<a href=http://doc.qt.io/qt-4.8/qpointf.html>QPointF</a>&gt; namedPoints() const
  567 +
  568 +Find all of the points that can be parsed from [metadata](#m_metadata) keys and return them. Only values that are convertable to <a href=http://doc.qt.io/qt-4.8/qpointf.html>QPointF</a> are found. Values that can be converted to <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;<a href=http://doc.qt.io/qt-4.8/qpointf.html>QPointF</a>&gt; are not included.
  569 +
  570 + File file;
  571 + file.set("Key1", QVariant::fromValue<QPointF>(QPointF(1, 1)));
  572 + file.set("Key2", QVariant::fromValue<QPointF>(QPointF(2, 2)));
  573 + file.set("Points", QVariant::fromValue<QPointF>(QPointF(3, 3)))
  574 +
  575 + f.namedPoints(); // returns [QPointF(1, 1), QPointF(2, 2), QPointF(3, 3)]
  576 +
  577 + file.setPoints(QList<QPointF>() << QPointF(3, 3)); // changes metadata["Points"] to QList<QPointF>
  578 + f.namedPoints(); // returns [QPointF(1, 1), QPointF(2, 2)]
  579 +
  580 +### <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;<a href=http://doc.qt.io/qt-4.8/qpointf.html>QPointF</a>&gt; points() const
  581 +
  582 +Returns the list of points stored in [metadata](#m_metadata)["Points"]. A list is expected and a single point not in a list will not be returned. Convenience functions [appendPoint](#void-appendpointconst-qpointf-point), [appendPoints](#void-appendpointsconst-qlistqpointf-points), [clearPoints](#void-clearpoints) and [setPoints](#void-setpointsconst-qlistqpointf-points) have been provided to manipulate the internal points list.
  583 +
  584 + File file;
  585 + file.set("Points", QVariant::fromValue<QPointF>(QPointF(1, 1)));
  586 + file.points(); // returns [] (point is not in a list)
  587 +
  588 + file.setPoints(QList<QPointF>() << QPointF(2, 2));
  589 + file.points(); // returns [QPointF(2, 2)]
  590 +
  591 +### void appendPoint(const <a href=http://doc.qt.io/qt-4.8/qpointf.html>QPointF</a> &point)
  592 +
  593 +Add a point to the file's points list stored in [metadata](#m_metadata)["Points"]
  594 +
  595 + File file;
  596 + file.points(); // returns []
  597 +
  598 + file.appendPoint(QPointF(1, 1));
  599 + file.points(); // returns [QPointF(1, 1)]
  600 +
  601 +### void appendPoints(const <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;<a href=http://doc.qt.io/qt-4.8/qpointf.html>QPointF</a>&gt; &points)
  602 +
  603 +Add a list of points to the file's points list stored in [metadata](#m_metadata)["Points"]
  604 +
  605 + File file;
  606 + file.points(); // returns []
  607 +
  608 + file.appendPoints(QList<QPointF>() << QPointF(1, 1) << QPointF(2, 2));
  609 + file.points(); // returns [QPointF(1, 1), QPointF(2, 2)]
  610 +
  611 +### void clearPoints()
  612 +
  613 +Clear the list of points stored in [metadata](#m_metadata)["Points"].
  614 +
  615 + File file;
  616 + file.appendPoints(QList<QPointF>() << QPointF(1, 1) << QPointF(2, 2));
  617 + file.points(); // returns [QPointF(1, 1), QPointF(2, 2)]
  618 +
  619 + file.clearPoints();
  620 + file.points(); // returns []
  621 +
  622 +### void setPoints(const <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;<a href=http://doc.qt.io/qt-4.8/qpointf.html>QPointF</a>&gt; &points)
  623 +
  624 +Clears the points stored in [metadata](#m_metadata) and replaces them with points.
  625 +
  626 + File file;
  627 + file.appendPoints(QList<QPointF>() << QPointF(1, 1) << QPointF(2, 2));
  628 + file.points(); // returns [QPointF(1, 1), QPointF(2, 2)]
  629 +
  630 + file.setPoints(QList<QPointF>() << QPointF(3, 3) << QPointF(4, 4));
  631 + file.points(); // returns [QPointF(3, 3), QPointF(4, 4)]
  632 +
  633 +### <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;<a href=http://doc.qt.io/qt-4.8/qrectf.html>QRectF</a>&gt; namedRects() const
  634 +
  635 +Find all of the rects that can be parsed from [metadata](#m_metadata) keys and return them. Only values that are convertable to <a href=http://doc.qt.io/qt-4.8/qrectf.html>QRectF</a> are found. Values that can be converted to <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;<a href=http://doc.qt.io/qt-4.8/qrectf.html>QRectF</a>&gt; are not included.
  636 +
  637 + File file;
  638 + file.set("Key1", QVariant::fromValue<QRectF>(QRectF(1, 1, 5, 5)));
  639 + file.set("Key2", QVariant::fromValue<QRectF>(QRectF(2, 2, 5, 5)));
  640 + file.set("Rects", QVariant::fromValue<QRectF>(QRectF(3, 3, 5, 5)));
  641 +
  642 + f.namedRects(); // returns [QRectF(1, 1, 5x5), QRectF(2, 2, 5x5), QRectF(3, 3, 5x5)]
  643 +
  644 + file.setRects(QList<QRectF>() << QRectF(3, 3, 5x5)); // changes metadata["Rects"] to QList<QRectF>
  645 + f.namedRects(); // returns [QRectF(1, 1, 5x5), QRectF(2, 2, 5x5)]
  646 +
  647 +### <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;<a href=http://doc.qt.io/qt-4.8/qrectf.html>QRectF</a>&gt; rects() const
  648 +
  649 +Returns the list of points stored in [metadata](#m_metadata)["Rects"]. A list is expected and a single rect not in a list will not be returned. Convenience functions [appendRect](#void-appendrectconst-qrectf-rect), [appendRects](#void-appendrectsconst-qlistqrectf-rects), [clearRects](#void-clearrects) and [setRects](#void-setrectsconst-qlistqrectf-rects) have been provided to manipulate the internal points list.
  650 +
  651 + File file;
  652 + file.set("Rects", QVariant::fromValue<QRectF>(QRectF(1, 1, 5, 5)));
  653 + file.rects(); // returns [] (rect is not in a list)
  654 +
  655 + file.setRects(QList<QRectF>() << QRectF(2, 2, 5, 5));
  656 + file.rects(); // returns [QRectF(2, 2, 5x5)]
  657 +
  658 +### void appendRect(const <a href=http://doc.qt.io/qt-4.8/qrectf.html>QRectF</a> &rect)
  659 +
  660 +Add a rect to the file's rects list stored in [metadata](#m_metadata)["Rects"].
  661 +
  662 + File file;
  663 + file.rects(); // returns []
  664 +
  665 + file.appendRect(QRectF(1, 1, 5, 5));
  666 + file.rects(); // returns [QRectF(1, 1, 5x5)]
  667 +
  668 +### void appendRect(const <a href=http://docs.opencv.org/modules/core/doc/basic_structures.html#rect>Rect</a> &rect)
  669 +
  670 +Add a OpenCV style rect to the file's rects list stored in [metadata](#m_metadata)["Rects"]. The rect is automatically converted to a QRectF.
  671 +
  672 + File file;
  673 + file.rects(); // returns []
  674 +
  675 + file.appendRect(cv::Rect(1, 1, 5, 5)); // automatically converted to QRectF
  676 + file.rects(); // returns [QRectF(1, 1, 5x5)]
  677 +
  678 +### void appendRects(const <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;<a href=http://doc.qt.io/qt-4.8/qrectf.html>QRectF</a>&gt; &rects)
  679 +
  680 +Add a list of rects to the file's rects list stored in [metadata](#m_metadata)["Rects"]
  681 +
  682 + File file;
  683 + file.rects(); // returns []
  684 +
  685 + file.appendRects(QList<QRectF>() << QRectF(1, 1, 5, 5) << QRectF(2, 2, 5, 5));
  686 + file.rects(); // returns [QRectF(1, 1, 5x5), QRectF(2, 2, 5x5)]
  687 +
  688 +### void appendRects(const <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;<a href=http://docs.opencv.org/modules/core/doc/basic_structures.html#rect>Rect</a>&gt; &rects)
  689 +
  690 +Add a list of OpenCV style rects to the file's rects list stored in [metadata](#m_metadata)["Rects"]. Each rect is automatically converted to a QRectF.
  691 +
  692 + File file;
  693 + file.rects(); // returns []
  694 +
  695 + file.appendRects(QList<cv::Rect>() << cv::Rect(1, 1, 5, 5) << cv::Rect(2, 2, 5, 5));
  696 + file.rects(); // returns [QRectF(1, 1, 5x5), QRectF(2, 2, 5x5)]
  697 +
  698 +
  699 +### void clearRects()
  700 +
  701 +Clear the list of rects stored in [metadata](#m_metadata)["Rects"].
  702 +
  703 + File file;
  704 + file.appendRects(QList<QRectF>() << QRectF(1, 1, 5, 5) << QRectF(2, 2, 5, 5));
  705 + file.rects(); // returns [QRectF(1, 1, 5x5), QRectF(2, 2, 5x5)]
  706 +
  707 + file.clearRects();
  708 + file.rects(); // returns []
  709 +
  710 +### void setRects(const <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;<a href=http://doc.qt.io/qt-4.8/qrectf.html>QRectF</a>&gt; &rects)
  711 +
  712 +Clears the rects stored in [metadata](#m_metadata)["Rects"] and replaces them with the given rects.
  713 +
  714 + File file;
  715 + file.appendRects(QList<QRectF>() << QRectF(1, 1, 5, 5) << QRectF(2, 2, 5, 5));
  716 + file.rects(); // returns [QRectF(1, 1, 5x5), QRectF(2, 2, 5x5)]
  717 +
  718 + file.setRects(QList<QRectF>() << QRectF(3, 3, 5, 5) << QRectF(4, 4, 5, 5));
  719 + file.rects(); // returns [QRectF(3, 3, 5x5), QRectF(4, 4, 5x5)]
  720 +
  721 +### void setRects(const <a href=http://doc.qt.io/qt-5/QList.html>QList</a>&lt;<a href=http://docs.opencv.org/modules/core/doc/basic_structures.html#rect>Rect</a>&gt; &rects)
  722 +
  723 +Clears the rects stored in [metadata](#m_metadata)["Rects"] and replaces them with the given OpenCV style rects.
  724 +
  725 + File file;
  726 + file.appendRects(QList<cv::Rect>() << cv::Rect(1, 1, 5, 5) << cv::Rect(2, 2, 5, 5));
  727 + file.rects(); // returns [QRectF(1, 1, 5x5), QRectF(2, 2, 5x5)]
  728 +
  729 + file.setRects(QList<cv::Rect>() << cv::Rect(3, 3, 5, 5) << cv::Rect(4, 4, 5, 5));
  730 + file.rects(); // returns [QRectF(3, 3, 5x5), QRectF(4, 4, 5x5)]
  731 +
  732 +---
  733 +
  734 +# FileList
  735 +
  736 +A convenience class for dealing with lists of files.
  737 +
  738 +## Constructors
  739 +
  740 +### FileList()
  741 +
  742 +Default constructor. Doesn't do anything
  743 +
  744 +### FileList(int n)
  745 +
  746 +Initialize the [FileList](#filelist) with n empty files
  747 +
  748 +### FileList(const <a href=http://doc.qt.io/qt-4.8/qstringlist.html>QStringList</a> &files)
  749 +
  750 +Initialize the [FileList](#filelist) from a list of strings. Each string should have the format "filename[key1=value1, key2=value2, ... keyN=valueN]"
  751 +
  752 +### FileList(const <a href=http://doc.qt.io/qt-4.8/qlist.html>QList</a>&lt;[File](#file)&gt; &files)
  753 +
  754 +Initialize the [FileList](#filelist) from a list of [files](#file).
  755 +
  756 +## Static Functions
  757 +
  758 +### static FileList fromGallery(const [File](#file) &gallery, bool cache = false)
  759 +
  760 +Creates a [FileList](#filelist) from a [Gallery](#gallery). Galleries store one or more [Templates](#template) on disk. Common formats include csv, xml, and gal, which is a unique OpenBR format. Read more about this in the [Gallery](#gallery) section. This function creates a [FileList](#filelist) by parsing the stored gallery based on its format. Cache determines whether the gallery should be stored for faster reading later.
  761 +
  762 + File gallery("gallery.csv");
  763 +
  764 + FileList fList = FileList::fromGallery(gallery);
  765 + fList.flat(); // returns all the files that have been loaded from disk. It could
  766 + // be 1 or 100 depending on what was stored.
  767 +
  768 +## Functions
  769 +
  770 +### <a href=http://doc.qt.io/qt-4.8/qstringlist.html>QStringList</a> flat() const
  771 +
  772 +Calls [flat](#qstring-flat-const) on every [File](#file) in the list and returns the resulting strings as a <a href=http://doc.qt.io/qt-4.8/qstringlist.html>QStringList</a>.
  773 +
  774 + File f1("picture1.jpg"), f2("picture2.jpg");
  775 + f1.set("Key", QString("Value"));
  776 +
  777 + FileList fList(QList<File>() << f1 << f2);
  778 + fList.flat(); // returns ["picture1.jpg[Key=Value]", "picture2.jpg"]
  779 +
  780 +### <a href=http://doc.qt.io/qt-4.8/qstringlist.html>QStringList</a> names() const
  781 +
  782 +Stores the name of every [file](#file) in the list and returns the resulting strings as a <a href=http://doc.qt.io/qt-4.8/qstringlist.html>QStringList</a>.
  783 +
  784 + File f1("picture1.jpg"), f2("picture2.jpg");
  785 + f1.set("Key", QString("Value"));
  786 +
  787 + FileList fList(QList<File>() << f1 << f2);
  788 + fList.names(); // returns ["picture1.jpg", "picture2.jpg"]
  789 +
  790 +### void sort(const <a href=http://doc.qt.io/qt-4.8/qstring.html>QString</a> &key)
  791 +
  792 +Sorts the [FileList](#filelist) based on the value associated with the given key in each file.
  793 +
  794 + File f1("1"), f2("2"), f3("3");
  795 + f1.set("Key", QVariant::fromValue<float>(3));
  796 + f2.set("Key", QVariant::fromValue<float>(1));
  797 + f3.set("Key", QVariant::fromValue<float>(2));
  798 +
  799 + FileList fList(QList<File>() << f1 << f2 << f3);
  800 + fList.names(); // returns ["1", "2", "3"]
  801 +
  802 + fList.sort("Key");
  803 + fList.names(); // returns ["2", "3", "1"]
  804 +
  805 +---
  806 +
  807 +# Template
  808 +
  809 +---
  810 +
  811 +# TemplateList
  812 +
  813 +---
  814 +
  815 +# Transform
  816 +
  817 +---
  818 +
  819 +# UntrainableTransform
  820 +
  821 +---
  822 +
  823 +# MetaTransform
  824 +
  825 +---
  826 +
  827 +# UntrainableMetaTransform
  828 +
  829 +---
  830 +
  831 +# MetadataTransform
  832 +
  833 +---
  834 +
  835 +# UntrainableMetadataTransform
  836 +
  837 +---
  838 +
  839 +# TimeVaryingTransform
  840 +
  841 +---
  842 +
  843 +# Distance
  844 +
  845 +---
  846 +
  847 +# UntrainableDistance
  848 +
  849 +---
  850 +
  851 +# Output
  852 +
  853 +---
  854 +
  855 +# MatrixOutput
  856 +
  857 +---
  858 +
  859 +# Format
  860 +
  861 +---
  862 +
  863 +# Representation
  864 +
  865 +---
  866 +
  867 +# Classifier
docs/docs/docs/plugins/classification.md 0 → 100644
  1 +---
  2 +
  3 +# AdaBoostTransform
  4 +
  5 +Wraps OpenCV's Ada Boost framework
  6 +
  7 +* **file:** classification/adaboost.cpp
  8 +* **inherits:** [Transform](../cpp_api.md#transform)
  9 +* **author:** Scott Klum
  10 +* **properties:** None
  11 +
  12 +---
  13 +
  14 +# EBIFTransform
  15 +
  16 +Face Recognition Using Early Biologically Inspired Features
  17 +
  18 +* **file:** classification/ebif.cpp
  19 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  20 +* **author:** Josh Klontz
  21 +* **properties:** None
  22 +
  23 +---
  24 +
  25 +# ForestTransform
  26 +
  27 +Wraps OpenCV's random trees framework
  28 +
  29 +* **file:** classification/forest.cpp
  30 +* **inherits:** [Transform](../cpp_api.md#transform)
  31 +* **author:** Scott Klum
  32 +* **properties:** None
  33 +
  34 +---
  35 +
  36 +# ForestInductionTransform
  37 +
  38 +Wraps OpenCV's random trees framework to induce features
  39 +
  40 +* **file:** classification/forest.cpp
  41 +* **inherits:** [ForestTransform](../cpp_api.md#foresttransform)
  42 +* **author:** Scott Klum
  43 +* **properties:** None
  44 +
  45 +---
  46 +
  47 +# IPC2013Initializer
  48 +
  49 +Initializes Intel Perceptual Computing SDK 2013
  50 +
  51 +* **file:** classification/ipc2013.cpp
  52 +* **inherits:** [Initializer](../cpp_api.md#initializer)
  53 +* **author:** Josh Klontz
  54 +* **properties:** None
  55 +
  56 +---
  57 +
  58 +# IPC2013FaceRecognitionTransfrom
  59 +
  60 +Intel Perceptual Computing SDK 2013 Face Recognition
  61 +
  62 +* **file:** classification/ipc2013.cpp
  63 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  64 +* **author:** Josh Klontz
  65 +* **properties:** None
  66 +
  67 +---
  68 +
  69 +# EigenInitializer
  70 +
  71 +Initialize Eigen
  72 +
  73 +* **file:** classification/lda.cpp
  74 +* **inherits:** [Initializer](../cpp_api.md#initializer)
  75 +* **author:** Scott Klum
  76 +* **properties:** None
  77 +
  78 +---
  79 +
  80 +# PCATransform
  81 +
  82 +Projects input into learned Principal Component Analysis subspace.
  83 +
  84 +* **file:** classification/lda.cpp
  85 +* **inherits:** [Transform](../cpp_api.md#transform)
  86 +* **authors:** Brendan Klare, Josh Klontz
  87 +* **properties:** None
  88 +
  89 +---
  90 +
  91 +# RowWisePCATransform
  92 +
  93 +PCA on each row.
  94 +
  95 +* **file:** classification/lda.cpp
  96 +* **inherits:** [PCATransform](../cpp_api.md#pcatransform)
  97 +* **author:** Josh Klontz
  98 +* **properties:** None
  99 +
  100 +---
  101 +
  102 +# DFFSTransform
  103 +
  104 +Computes Distance From Feature Space (DFFS)
  105 +
  106 +* **file:** classification/lda.cpp
  107 +* **inherits:** [Transform](../cpp_api.md#transform)
  108 +* **author:** Josh Klontz
  109 +* **properties:** None
  110 +
  111 +---
  112 +
  113 +# LDATransform
  114 +
  115 +Projects input into learned Linear Discriminant Analysis subspace.
  116 +
  117 +* **file:** classification/lda.cpp
  118 +* **inherits:** [Transform](../cpp_api.md#transform)
  119 +* **authors:** Brendan Klare, Josh Klontz
  120 +* **properties:** None
  121 +
  122 +---
  123 +
  124 +# SparseLDATransform
  125 +
  126 +Projects input into learned Linear Discriminant Analysis subspace
  127 +
  128 +* **file:** classification/lda.cpp
  129 +* **inherits:** [Transform](../cpp_api.md#transform)
  130 +* **author:** Brendan Klare
  131 +* **properties:** None
  132 +
  133 +---
  134 +
  135 +# MLPTransform
  136 +
  137 +Wraps OpenCV's multi-layer perceptron framework
  138 +
  139 +* **file:** classification/mlp.cpp
  140 +* **inherits:** [MetaTransform](../cpp_api.md#metatransform)
  141 +* **author:** Scott Klum
  142 +* **properties:** None
  143 +
  144 +---
  145 +
  146 +# NT4Initializer
  147 +
  148 +Initialize Neurotech SDK 4
  149 +
  150 +* **file:** classification/nt4.cpp
  151 +* **inherits:** [Initializer](../cpp_api.md#initializer)
  152 +* **authors:** Josh Klontz, E. Taborsky
  153 +* **properties:** None
  154 +
  155 +---
  156 +
  157 +# NT4DetectFace
  158 +
  159 +Neurotech face detection
  160 +
  161 +* **file:** classification/nt4.cpp
  162 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  163 +* **authors:** Josh Klontz, E. Taborsky
  164 +* **properties:** None
  165 +
  166 +---
  167 +
  168 +# NT4EnrollFace
  169 +
  170 +Enroll face in Neurotech SDK 4
  171 +
  172 +* **file:** classification/nt4.cpp
  173 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  174 +* **author:** Josh Klontz
  175 +* **properties:** None
  176 +
  177 +---
  178 +
  179 +# NT4EnrollIris
  180 +
  181 +Enroll iris in Neurotech SDK 4
  182 +
  183 +* **file:** classification/nt4.cpp
  184 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  185 +* **author:** E. Taborsky
  186 +* **properties:** None
  187 +
  188 +---
  189 +
  190 +# NT4Compare
  191 +
  192 +Compare templates with Neurotech SDK 4
  193 +
  194 +* **file:** classification/nt4.cpp
  195 +* **inherits:** [Distance](../cpp_api.md#distance)
  196 +* **authors:** Josh Klontz, E. Taborsky
  197 +* **properties:** None
  198 +
  199 +---
  200 +
  201 +# PP4Initializer
  202 +
  203 +Initialize PittPatt 4
  204 +
  205 +* **file:** classification/pp4.cpp
  206 +* **inherits:** [Initializer](../cpp_api.md#initializer)
  207 +* **author:** Josh Klontz
  208 +* **properties:** None
  209 +
  210 +---
  211 +
  212 +# PP4EnrollTransform
  213 +
  214 +Enroll faces in PittPatt 4
  215 +
  216 +* **file:** classification/pp4.cpp
  217 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  218 +* **author:** Josh Klontz
  219 +* **properties:** None
  220 +
  221 +---
  222 +
  223 +# PP5Initializer
  224 +
  225 +Initialize PP5
  226 +
  227 +* **file:** classification/pp5.cpp
  228 +* **inherits:** [Initializer](../cpp_api.md#initializer)
  229 +* **authors:** Josh Klontz, E. Taborsky
  230 +* **properties:** None
  231 +
  232 +---
  233 +
  234 +# PP5EnrollTransform
  235 +
  236 +Enroll faces in PP5
  237 +
  238 +* **file:** classification/pp5.cpp
  239 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  240 +* **authors:** Josh Klontz, E. Taborsky
  241 +* **properties:** None
  242 +
  243 +---
  244 +
  245 +# PP5CompareDistance
  246 +
  247 +Compare templates with PP5
  248 +
  249 +* **file:** classification/pp5.cpp
  250 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  251 +* **authors:** Josh Klontz, E. Taborsky
  252 +* **properties:** None
  253 +
  254 +---
  255 +
  256 +# SVMTransform
  257 +
  258 +C. Burges. "A tutorial on support vector machines for pattern recognition,"
  259 +
  260 +* **file:** classification/svm.cpp
  261 +* **inherits:** [Transform](../cpp_api.md#transform)
  262 +* **author:** Josh Klontz
  263 +* **properties:** None
  264 +
  265 +---
  266 +
  267 +# SVMDistance
  268 +
  269 +SVM Regression on template absolute differences.
  270 +
  271 +* **file:** classification/svm.cpp
  272 +* **inherits:** [Distance](../cpp_api.md#distance)
  273 +* **author:** Josh Klontz
  274 +* **properties:** None
  275 +
  276 +---
  277 +
  278 +# TurkClassifierTransform
  279 +
  280 +Convenience class for training turk attribute regressors
  281 +
  282 +* **file:** classification/turk.cpp
  283 +* **inherits:** [Transform](../cpp_api.md#transform)
  284 +* **author:** Josh Klontz
  285 +* **properties:** None
  286 +
docs/docs/docs/plugins/cluster.md 0 → 100644
  1 +---
  2 +
  3 +# CollectNNTransform
  4 +
  5 +Collect nearest neighbors and append them to metadata.
  6 +
  7 +* **file:** cluster/collectnn.cpp
  8 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  9 +* **author:** Charles Otto
  10 +* **properties:** None
  11 +
  12 +---
  13 +
  14 +# KMeansTransform
  15 +
  16 +Wraps OpenCV kmeans and flann.
  17 +
  18 +* **file:** cluster/kmeans.cpp
  19 +* **inherits:** [Transform](../cpp_api.md#transform)
  20 +* **author:** Josh Klontz
  21 +* **properties:** None
  22 +
  23 +---
  24 +
  25 +# KNNTransform
  26 +
  27 +K nearest neighbors classifier.
  28 +
  29 +* **file:** cluster/knn.cpp
  30 +* **inherits:** [Transform](../cpp_api.md#transform)
  31 +* **author:** Josh Klontz
  32 +* **properties:** None
  33 +
  34 +---
  35 +
  36 +# LogNNTransform
  37 +
  38 +Log nearest neighbors to specified file.
  39 +
  40 +* **file:** cluster/lognn.cpp
  41 +* **inherits:** [TimeVaryingTransform](../cpp_api.md#timevaryingtransform)
  42 +* **author:** Charles Otto
  43 +* **properties:** None
  44 +
  45 +---
  46 +
  47 +# RandomCentroidsTransform
  48 +
  49 +Chooses k random points to be centroids.
  50 +
  51 +* **file:** cluster/randomcentroids.cpp
  52 +* **inherits:** [Transform](../cpp_api.md#transform)
  53 +* **author:** Austin Blanton
  54 +* **properties:** None
  55 +
docs/docs/docs/plugins/core.md 0 → 100644
  1 +---
  2 +
  3 +# AlgorithmsInitializer
  4 +
  5 +Initializes global abbreviations with implemented algorithms
  6 +
  7 +* **file:** core/algorithms.cpp
  8 +* **inherits:** [Initializer](../cpp_api.md#initializer)
  9 +* **author:** Josh Klontz
  10 +* **properties:** None
  11 +
  12 +---
  13 +
  14 +# ProcrustesAlignTransform
  15 +
  16 +Improved procrustes alignment of points, to include a post processing scaling of points
  17 +
  18 +* **file:** core/align.cpp
  19 +* **inherits:** [Transform](../cpp_api.md#transform)
  20 +* **author:** Brendan Klare
  21 +* **properties:** None
  22 +
  23 +---
  24 +
  25 +# TextureMapTransform
  26 +
  27 +Maps texture from one set of points to another. Assumes that points are rigidly transformed
  28 +
  29 +* **file:** core/align.cpp
  30 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  31 +* **authors:** Brendan Klare, Scott Klum
  32 +* **properties:** None
  33 +
  34 +---
  35 +
  36 +# SynthesizePointsTransform
  37 +
  38 +Synthesize additional points via triangulation.
  39 +
  40 +* **file:** core/align.cpp
  41 +* **inherits:** [MetadataTransform](../cpp_api.md#metadatatransform)
  42 +* **author:** Josh Klontz
  43 +* **properties:** None
  44 +
  45 +---
  46 +
  47 +# ProcrustesInitializer
  48 +
  49 +Initialize Procrustes croppings
  50 +
  51 +* **file:** core/align.cpp
  52 +* **inherits:** [Initializer](../cpp_api.md#initializer)
  53 +* **author:** Brendan Klare
  54 +* **properties:** None
  55 +
  56 +---
  57 +
  58 +# AttributeAlgorithmsInitializer
  59 +
  60 +Initializes global abbreviations with implemented algorithms for attributes
  61 +
  62 +* **file:** core/attributealgorithms.cpp
  63 +* **inherits:** [Initializer](../cpp_api.md#initializer)
  64 +* **author:** Babatunde Ogunfemi
  65 +* **properties:** None
  66 +
  67 +---
  68 +
  69 +# CacheTransform
  70 +
  71 +Caches br::Transform::project() results.
  72 +
  73 +* **file:** core/cache.cpp
  74 +* **inherits:** [MetaTransform](../cpp_api.md#metatransform)
  75 +* **author:** Josh Klontz
  76 +* **properties:** None
  77 +
  78 +---
  79 +
  80 +# ContractTransform
  81 +
  82 +It's like the opposite of ExpandTransform, but not really
  83 +
  84 +* **file:** core/contract.cpp
  85 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  86 +* **author:** Charles Otto
  87 +* **properties:** None
  88 +
  89 +---
  90 +
  91 +# CrossValidateTransform
  92 +
  93 +Cross validate a trainable transform.
  94 +
  95 +* **file:** core/crossvalidate.cpp
  96 +* **inherits:** [MetaTransform](../cpp_api.md#metatransform)
  97 +* **authors:** Josh Klontz, Scott Klum
  98 +* **properties:** None
  99 +
  100 +---
  101 +
  102 +# DiscardTransform
  103 +
  104 +Removes all template's matrices.
  105 +
  106 +* **file:** core/discard.cpp
  107 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  108 +* **author:** Josh Klontz
  109 +* **properties:** None
  110 +
  111 +---
  112 +
  113 +# ExpandTransform
  114 +
  115 +Performs an expansion step on input templatelists
  116 +
  117 +* **file:** core/expand.cpp
  118 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  119 +* **author:** Josh Klontz
  120 +* **properties:** None
  121 +
  122 +---
  123 +
  124 +# FirstTransform
  125 +
  126 +Removes all but the first matrix from the template.
  127 +
  128 +* **file:** core/first.cpp
  129 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  130 +* **author:** Josh Klontz
  131 +* **properties:** None
  132 +
  133 +---
  134 +
  135 +# ForkTransform
  136 +
  137 +Transforms in parallel.
  138 +
  139 +* **file:** core/fork.cpp
  140 +* **inherits:** [CompositeTransform](../cpp_api.md#compositetransform)
  141 +* **author:** Josh Klontz
  142 +* **properties:** None
  143 +
  144 +---
  145 +
  146 +# FTETransform
  147 +
  148 +Flags images that failed to enroll based on the specified transform.
  149 +
  150 +* **file:** core/fte.cpp
  151 +* **inherits:** [Transform](../cpp_api.md#transform)
  152 +* **author:** Josh Klontz
  153 +* **properties:** None
  154 +
  155 +---
  156 +
  157 +# GalleryCompareTransform
  158 +
  159 +Compare each template to a fixed gallery (with name = galleryName), using the specified distance.
  160 +
  161 +* **file:** core/gallerycompare.cpp
  162 +* **inherits:** [Transform](../cpp_api.md#transform)
  163 +* **author:** Charles Otto
  164 +* **properties:** None
  165 +
  166 +---
  167 +
  168 +# IdentityTransform
  169 +
  170 +A no-op transform.
  171 +
  172 +* **file:** core/identity.cpp
  173 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  174 +* **author:** Josh Klontz
  175 +* **properties:** None
  176 +
  177 +---
  178 +
  179 +# IndependentTransform
  180 +
  181 +Clones the transform so that it can be applied independently.
  182 +
  183 +* **file:** core/independent.cpp
  184 +* **inherits:** [MetaTransform](../cpp_api.md#metatransform)
  185 +* **author:** Josh Klontz
  186 +* **properties:** None
  187 +
  188 +---
  189 +
  190 +# JNIInitializer
  191 +
  192 +Initialize JNI
  193 +
  194 +* **file:** core/jni.cpp
  195 +* **inherits:** [Initializer](../cpp_api.md#initializer)
  196 +* **author:** Jordan Cheney
  197 +* **properties:** None
  198 +
  199 +---
  200 +
  201 +# LikelyTransform
  202 +
  203 +Generic interface to Likely JIT compiler
  204 +
  205 +* **file:** core/likely.cpp
  206 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  207 +* **author:** Josh Klontz
  208 +* **properties:** None
  209 +
  210 +---
  211 +
  212 +# LoadStoreTransform
  213 +
  214 +Caches transform training.
  215 +
  216 +* **file:** core/loadstore.cpp
  217 +* **inherits:** [MetaTransform](../cpp_api.md#metatransform)
  218 +* **author:** Josh Klontz
  219 +* **properties:** None
  220 +
  221 +---
  222 +
  223 +# PipeTransform
  224 +
  225 +Transforms in series.
  226 +
  227 +* **file:** core/pipe.cpp
  228 +* **inherits:** [CompositeTransform](../cpp_api.md#compositetransform)
  229 +* **author:** Josh Klontz
  230 +* **properties:** None
  231 +
  232 +---
  233 +
  234 +# ProcessWrapperTransform
  235 +
  236 +Interface to a separate process
  237 +
  238 +* **file:** core/processwrapper.cpp
  239 +* **inherits:** [WrapperTransform](../cpp_api.md#wrappertransform)
  240 +* **author:** Charles Otto
  241 +* **properties:** None
  242 +
  243 +---
  244 +
  245 +# Registrar
  246 +
  247 +Register custom objects with Qt meta object system.
  248 +
  249 +* **file:** core/registrar.cpp
  250 +* **inherits:** [Initializer](../cpp_api.md#initializer)
  251 +* **author:** Charles Otto
  252 +* **properties:** None
  253 +
  254 +---
  255 +
  256 +# RestTransform
  257 +
  258 +Removes the first matrix from the template.
  259 +
  260 +* **file:** core/rest.cpp
  261 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  262 +* **author:** Josh Klontz
  263 +* **properties:** None
  264 +
  265 +---
  266 +
  267 +# SchrodingerTransform
  268 +
  269 +Generates two templates, one of which is passed through a transform and the other
  270 +
  271 +* **file:** core/schrodinger.cpp
  272 +* **inherits:** [MetaTransform](../cpp_api.md#metatransform)
  273 +* **author:** Scott Klum
  274 +* **properties:** None
  275 +
  276 +---
  277 +
  278 +# SingletonTransform
  279 +
  280 +A globally shared transform.
  281 +
  282 +* **file:** core/singleton.cpp
  283 +* **inherits:** [MetaTransform](../cpp_api.md#metatransform)
  284 +* **author:** Josh Klontz
  285 +* **properties:** None
  286 +
docs/docs/docs/plugins/distance.md 0 → 100644
  1 +---
  2 +
  3 +# AttributeDistance
  4 +
  5 +Attenuation function based distance from attributes
  6 +
  7 +* **file:** distance/attribute.cpp
  8 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  9 +* **author:** Scott Klum
  10 +* **properties:** None
  11 +
  12 +---
  13 +
  14 +# BayesianQuantizationDistance
  15 +
  16 +Bayesian quantization distance
  17 +
  18 +* **file:** distance/bayesianquantization.cpp
  19 +* **inherits:** [Distance](../cpp_api.md#distance)
  20 +* **author:** Josh Klontz
  21 +* **properties:** None
  22 +
  23 +---
  24 +
  25 +# ByteL1Distance
  26 +
  27 +Fast 8-bit L1 distance
  28 +
  29 +* **file:** distance/byteL1.cpp
  30 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  31 +* **author:** Josh Klontz
  32 +* **properties:** None
  33 +
  34 +---
  35 +
  36 +# CrossValidateDistance
  37 +
  38 +Cross validate a distance metric.
  39 +
  40 +* **file:** distance/crossvalidate.cpp
  41 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  42 +* **author:** Josh Klontz
  43 +* **properties:** None
  44 +
  45 +---
  46 +
  47 +# DefaultDistance
  48 +
  49 +DistDistance wrapper.
  50 +
  51 +* **file:** distance/default.cpp
  52 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  53 +* **author:** Josh Klontz
  54 +* **properties:** None
  55 +
  56 +---
  57 +
  58 +# DistDistance
  59 +
  60 +Standard distance metrics
  61 +
  62 +* **file:** distance/dist.cpp
  63 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  64 +* **author:** Josh Klontz
  65 +* **properties:** None
  66 +
  67 +---
  68 +
  69 +# FilterDistance
  70 +
  71 +Checks target metadata against filters.
  72 +
  73 +* **file:** distance/filter.cpp
  74 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  75 +* **author:** Josh Klontz
  76 +* **properties:** None
  77 +
  78 +---
  79 +
  80 +# FuseDistance
  81 +
  82 +Fuses similarity scores across multiple matrices of compared templates
  83 +
  84 +* **file:** distance/fuse.cpp
  85 +* **inherits:** [Distance](../cpp_api.md#distance)
  86 +* **author:** Scott Klum
  87 +* **properties:** None
  88 +
  89 +---
  90 +
  91 +# HalfByteL1Distance
  92 +
  93 +Fast 4-bit L1 distance
  94 +
  95 +* **file:** distance/halfbyteL1.cpp
  96 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  97 +* **author:** Josh Klontz
  98 +* **properties:** None
  99 +
  100 +---
  101 +
  102 +# HeatMapDistance
  103 +
  104 +1v1 heat map comparison
  105 +
  106 +* **file:** distance/heatmap.cpp
  107 +* **inherits:** [Distance](../cpp_api.md#distance)
  108 +* **author:** Scott Klum
  109 +* **properties:** None
  110 +
  111 +---
  112 +
  113 +# IdenticalDistance
  114 +
  115 +Returns
  116 +
  117 +* **file:** distance/identical.cpp
  118 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  119 +* **author:** Josh Klontz
  120 +* **properties:** None
  121 +
  122 +---
  123 +
  124 +# KeyPointMatcherDistance
  125 +
  126 +Wraps OpenCV Key Point Matcher
  127 +
  128 +* **file:** distance/keypointmatcher.cpp
  129 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  130 +* **author:** Josh Klontz
  131 +* **properties:** None
  132 +
  133 +---
  134 +
  135 +# L1Distance
  136 +
  137 +L1 distance computed using eigen.
  138 +
  139 +* **file:** distance/L1.cpp
  140 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  141 +* **author:** Josh Klontz
  142 +* **properties:** None
  143 +
  144 +---
  145 +
  146 +# L2Distance
  147 +
  148 +L2 distance computed using eigen.
  149 +
  150 +* **file:** distance/L2.cpp
  151 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  152 +* **author:** Josh Klontz
  153 +* **properties:** None
  154 +
  155 +---
  156 +
  157 +# MatchProbabilityDistance
  158 +
  159 +Match Probability
  160 +
  161 +* **file:** distance/matchprobability.cpp
  162 +* **inherits:** [Distance](../cpp_api.md#distance)
  163 +* **author:** Josh Klontz
  164 +* **properties:** None
  165 +
  166 +---
  167 +
  168 +# MetadataDistance
  169 +
  170 +Checks target metadata against query metadata.
  171 +
  172 +* **file:** distance/metadata.cpp
  173 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  174 +* **author:** Scott Klum
  175 +* **properties:** None
  176 +
  177 +---
  178 +
  179 +# NegativeLogPlusOneDistance
  180 +
  181 +Returns -log(distance(a,b)+1)
  182 +
  183 +* **file:** distance/neglogplusone.cpp
  184 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  185 +* **author:** Josh Klontz
  186 +* **properties:** None
  187 +
  188 +---
  189 +
  190 +# OnlineDistance
  191 +
  192 +Online distance metric to attenuate match scores across multiple frames
  193 +
  194 +* **file:** distance/online.cpp
  195 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  196 +* **author:** Brendan klare
  197 +* **properties:** None
  198 +
  199 +---
  200 +
  201 +# PipeDistance
  202 +
  203 +Distances in series.
  204 +
  205 +* **file:** distance/pipe.cpp
  206 +* **inherits:** [Distance](../cpp_api.md#distance)
  207 +* **author:** Josh Klontz
  208 +* **properties:** None
  209 +
  210 +---
  211 +
  212 +# RejectDistance
  213 +
  214 +Sets distance to -FLOAT_MAX if a target template has/doesn't have a key.
  215 +
  216 +* **file:** distance/reject.cpp
  217 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  218 +* **author:** Scott Klum
  219 +* **properties:** None
  220 +
  221 +---
  222 +
  223 +# SumDistance
  224 +
  225 +Sum match scores across multiple distances
  226 +
  227 +* **file:** distance/sum.cpp
  228 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  229 +* **author:** Scott Klum
  230 +* **properties:** None
  231 +
  232 +---
  233 +
  234 +# TurkDistance
  235 +
  236 +Unmaps Turk HITs to be compared against query mats
  237 +
  238 +* **file:** distance/turk.cpp
  239 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  240 +* **author:** Scott Klum
  241 +* **properties:** None
  242 +
  243 +---
  244 +
  245 +# UnitDistance
  246 +
  247 +Linear normalizes of a distance so the mean impostor score is 0 and the mean genuine score is 1.
  248 +
  249 +* **file:** distance/unit.cpp
  250 +* **inherits:** [Distance](../cpp_api.md#distance)
  251 +* **author:** Josh Klontz
  252 +* **properties:** None
  253 +
docs/docs/docs/plugins/format.md 0 → 100644
  1 +---
  2 +
  3 +# binaryFormat
  4 +
  5 +A simple binary matrix format.
  6 +
  7 +* **file:** format/binary.cpp
  8 +* **inherits:** [Format](../cpp_api.md#format)
  9 +* **author:** Josh Klontz
  10 +* **properties:** None
  11 +
  12 +---
  13 +
  14 +# csvFormat
  15 +
  16 +Reads a comma separated value file.
  17 +
  18 +* **file:** format/csv.cpp
  19 +* **inherits:** [Format](../cpp_api.md#format)
  20 +* **author:** Josh Klontz
  21 +* **properties:** None
  22 +
  23 +---
  24 +
  25 +# ebtsFormat
  26 +
  27 +Reads FBI EBTS transactions.
  28 +
  29 +* **file:** format/ebts.cpp
  30 +* **inherits:** [Format](../cpp_api.md#format)
  31 +* **author:** Scott Klum
  32 +* **properties:** None
  33 +
  34 +---
  35 +
  36 +# lffsFormat
  37 +
  38 +Reads a NIST LFFS file.
  39 +
  40 +* **file:** format/lffs.cpp
  41 +* **inherits:** [Format](../cpp_api.md#format)
  42 +* **author:** Josh Klontz
  43 +* **properties:** None
  44 +
  45 +---
  46 +
  47 +# lmatFormat
  48 +
  49 +Likely matrix format
  50 +
  51 +* **file:** format/lmat.cpp
  52 +* **inherits:** [Format](../cpp_api.md#format)
  53 +* **author:** Josh Klontz
  54 +* **properties:** None
  55 +
  56 +---
  57 +
  58 +# matFormat
  59 +
  60 +MATLAB <tt>.mat</tt> format.
  61 +
  62 +* **file:** format/mat.cpp
  63 +* **inherits:** [Format](../cpp_api.md#format)
  64 +* **author:** Josh Klontz
  65 +* **properties:** None
  66 +
  67 +---
  68 +
  69 +# mtxFormat
  70 +
  71 +Reads a NIST BEE similarity matrix.
  72 +
  73 +* **file:** format/mtx.cpp
  74 +* **inherits:** [Format](../cpp_api.md#format)
  75 +* **author:** Josh Klontz
  76 +* **properties:** None
  77 +
  78 +---
  79 +
  80 +# maskFormat
  81 +
  82 +Reads a NIST BEE mask matrix.
  83 +
  84 +* **file:** format/mtx.cpp
  85 +* **inherits:** [mtxFormat](../cpp_api.md#mtxformat)
  86 +* **author:** Josh Klontz
  87 +* **properties:** None
  88 +
  89 +---
  90 +
  91 +# nullFormat
  92 +
  93 +Returns an empty matrix.
  94 +
  95 +* **file:** format/null.cpp
  96 +* **inherits:** [Format](../cpp_api.md#format)
  97 +* **author:** Josh Klontz
  98 +* **properties:** None
  99 +
  100 +---
  101 +
  102 +# postFormat
  103 +
  104 +Handle POST requests
  105 +
  106 +* **file:** format/post.cpp
  107 +* **inherits:** [Format](../cpp_api.md#format)
  108 +* **author:** Josh Klontz
  109 +* **properties:** None
  110 +
  111 +---
  112 +
  113 +# rawFormat
  114 +
  115 +RAW format
  116 +
  117 +* **file:** format/raw.cpp
  118 +* **inherits:** [Format](../cpp_api.md#format)
  119 +* **author:** Josh Klontz
  120 +* **properties:** None
  121 +
  122 +---
  123 +
  124 +# scoresFormat
  125 +
  126 +Reads in scores or ground truth from a text table.
  127 +
  128 +* **file:** format/scores.cpp
  129 +* **inherits:** [Format](../cpp_api.md#format)
  130 +* **author:** Josh Klontz
  131 +* **properties:** None
  132 +
  133 +---
  134 +
  135 +# urlFormat
  136 +
  137 +Reads image files from the web.
  138 +
  139 +* **file:** format/url.cpp
  140 +* **inherits:** [Format](../cpp_api.md#format)
  141 +* **author:** Josh Klontz
  142 +* **properties:** None
  143 +
  144 +---
  145 +
  146 +# videoFormat
  147 +
  148 +Read all frames of a video using OpenCV
  149 +
  150 +* **file:** format/video.cpp
  151 +* **inherits:** [Format](../cpp_api.md#format)
  152 +* **author:** Charles Otto
  153 +* **properties:** None
  154 +
  155 +---
  156 +
  157 +# webcamFormat
  158 +
  159 +Retrieves an image from a webcam.
  160 +
  161 +* **file:** format/video.cpp
  162 +* **inherits:** [Format](../cpp_api.md#format)
  163 +* **author:** Josh Klontz
  164 +* **properties:** None
  165 +
  166 +---
  167 +
  168 +# DefaultFormat
  169 +
  170 +Reads image files.
  171 +
  172 +* **file:** format/video.cpp
  173 +* **inherits:** [Format](../cpp_api.md#format)
  174 +* **author:** Josh Klontz
  175 +* **properties:** None
  176 +
  177 +---
  178 +
  179 +# xmlFormat
  180 +
  181 +Decodes images from Base64 xml
  182 +
  183 +* **file:** format/xml.cpp
  184 +* **inherits:** [Format](../cpp_api.md#format)
  185 +* **authors:** Scott Klum, Josh Klontz
  186 +* **properties:** None
  187 +
docs/docs/docs/plugins/gallery.md 0 → 100644
  1 +---
  2 +
  3 +# arffGallery
  4 +
  5 +Weka ARFF file format.
  6 +
  7 +* **file:** gallery/arff.cpp
  8 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  9 +* **author:** Josh Klontz
  10 +* **properties:** None
  11 +
  12 +---
  13 +
  14 +# galGallery
  15 +
  16 +A binary gallery.
  17 +
  18 +* **file:** gallery/binary.cpp
  19 +* **inherits:** [BinaryGallery](../cpp_api.md#binarygallery)
  20 +* **author:** Josh Klontz
  21 +* **properties:** None
  22 +
  23 +---
  24 +
  25 +# utGallery
  26 +
  27 +A contiguous array of br_universal_template.
  28 +
  29 +* **file:** gallery/binary.cpp
  30 +* **inherits:** [BinaryGallery](../cpp_api.md#binarygallery)
  31 +* **author:** Josh Klontz
  32 +* **properties:** None
  33 +
  34 +---
  35 +
  36 +# urlGallery
  37 +
  38 +Newline-separated URLs.
  39 +
  40 +* **file:** gallery/binary.cpp
  41 +* **inherits:** [BinaryGallery](../cpp_api.md#binarygallery)
  42 +* **author:** Josh Klontz
  43 +* **properties:** None
  44 +
  45 +---
  46 +
  47 +# jsonGallery
  48 +
  49 +Newline-separated JSON objects.
  50 +
  51 +* **file:** gallery/binary.cpp
  52 +* **inherits:** [BinaryGallery](../cpp_api.md#binarygallery)
  53 +* **author:** Josh Klontz
  54 +* **properties:** None
  55 +
  56 +---
  57 +
  58 +# crawlGallery
  59 +
  60 +Crawl a root location for image files.
  61 +
  62 +* **file:** gallery/crawl.cpp
  63 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  64 +* **author:** Josh Klontz
  65 +* **properties:** None
  66 +
  67 +---
  68 +
  69 +# csvGallery
  70 +
  71 +Treats each line as a file.
  72 +
  73 +* **file:** gallery/csv.cpp
  74 +* **inherits:** [FileGallery](../cpp_api.md#filegallery)
  75 +* **author:** Josh Klontz
  76 +* **properties:** None
  77 +
  78 +---
  79 +
  80 +# dbGallery
  81 +
  82 +Database input.
  83 +
  84 +* **file:** gallery/db.cpp
  85 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  86 +* **author:** Josh Klontz
  87 +* **properties:** None
  88 +
  89 +---
  90 +
  91 +# DefaultGallery
  92 +
  93 +Treats the gallery as a br::Format.
  94 +
  95 +* **file:** gallery/default.cpp
  96 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  97 +* **author:** Josh Klontz
  98 +* **properties:** None
  99 +
  100 +---
  101 +
  102 +# EmptyGallery
  103 +
  104 +Reads/writes templates to/from folders.
  105 +
  106 +* **file:** gallery/empty.cpp
  107 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  108 +* **author:** Josh Klontz
  109 +* **properties:** None
  110 +
  111 +---
  112 +
  113 +# FDDBGallery
  114 +
  115 +Implements the FDDB detection format.
  116 +
  117 +* **file:** gallery/fddb.cpp
  118 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  119 +* **author:** Josh Klontz
  120 +* **properties:** None
  121 +
  122 +---
  123 +
  124 +# flatGallery
  125 +
  126 +Treats each line as a call to File::flat()
  127 +
  128 +* **file:** gallery/flat.cpp
  129 +* **inherits:** [FileGallery](../cpp_api.md#filegallery)
  130 +* **author:** Josh Klontz
  131 +* **properties:** None
  132 +
  133 +---
  134 +
  135 +# googleGallery
  136 +
  137 +Input from a google image search.
  138 +
  139 +* **file:** gallery/google.cpp
  140 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  141 +* **author:** Josh Klontz
  142 +* **properties:** None
  143 +
  144 +---
  145 +
  146 +# keyframesGallery
  147 +
  148 +Read key frames of a video with LibAV
  149 +
  150 +* **file:** gallery/keyframes.cpp
  151 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  152 +* **author:** Ben Klein
  153 +* **properties:** None
  154 +
  155 +---
  156 +
  157 +# mp4Gallery
  158 +
  159 +Read key frames of a .mp4 video file with LibAV
  160 +
  161 +* **file:** gallery/keyframes.cpp
  162 +* **inherits:** [keyframesGallery](../cpp_api.md#keyframesgallery)
  163 +* **author:** Ben Klein
  164 +* **properties:** None
  165 +
  166 +---
  167 +
  168 +# landmarksGallery
  169 +
  170 +Text format for associating anonymous landmarks with images.
  171 +
  172 +* **file:** gallery/landmarks.cpp
  173 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  174 +* **author:** Josh Klontz
  175 +* **properties:** None
  176 +
  177 +---
  178 +
  179 +# lmatGallery
  180 +
  181 +Likely matrix format
  182 +
  183 +* **file:** gallery/lmat.cpp
  184 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  185 +* **author:** Josh Klontz
  186 +* **properties:** None
  187 +
  188 +---
  189 +
  190 +# matrixGallery
  191 +
  192 +Combine all templates into one large matrix and process it as a br::Format
  193 +
  194 +* **file:** gallery/matrix.cpp
  195 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  196 +* **author:** Josh Klontz
  197 +* **properties:** None
  198 +
  199 +---
  200 +
  201 +# MemoryGalleries
  202 +
  203 +Initialization support for memGallery.
  204 +
  205 +* **file:** gallery/mem.cpp
  206 +* **inherits:** [Initializer](../cpp_api.md#initializer)
  207 +* **author:** Josh Klontz
  208 +* **properties:** None
  209 +
  210 +---
  211 +
  212 +# memGallery
  213 +
  214 +A gallery held in memory.
  215 +
  216 +* **file:** gallery/mem.cpp
  217 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  218 +* **author:** Josh Klontz
  219 +* **properties:** None
  220 +
  221 +---
  222 +
  223 +# postGallery
  224 +
  225 +Handle POST requests
  226 +
  227 +* **file:** gallery/post.cpp
  228 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  229 +* **author:** Josh Klontz
  230 +* **properties:** None
  231 +
  232 +---
  233 +
  234 +# statGallery
  235 +
  236 +Print template statistics.
  237 +
  238 +* **file:** gallery/stat.cpp
  239 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  240 +* **author:** Josh Klontz
  241 +* **properties:** None
  242 +
  243 +---
  244 +
  245 +# templateGallery
  246 +
  247 +Treat the file as a single binary template.
  248 +
  249 +* **file:** gallery/template.cpp
  250 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  251 +* **author:** Josh Klontz
  252 +* **properties:** None
  253 +
  254 +---
  255 +
  256 +# turkGallery
  257 +
  258 +For Amazon Mechanical Turk datasets
  259 +
  260 +* **file:** gallery/turk.cpp
  261 +* **inherits:** [Gallery](../cpp_api.md#gallery)
  262 +* **author:** Scott Klum
  263 +* **properties:** None
  264 +
  265 +---
  266 +
  267 +# txtGallery
  268 +
  269 +Treats each line as a file.
  270 +
  271 +* **file:** gallery/txt.cpp
  272 +* **inherits:** [FileGallery](../cpp_api.md#filegallery)
  273 +* **author:** Josh Klontz
  274 +* **properties:** None
  275 +
  276 +---
  277 +
  278 +# xmlGallery
  279 +
  280 +A
  281 +
  282 +* **file:** gallery/xml.cpp
  283 +* **inherits:** [FileGallery](../cpp_api.md#filegallery)
  284 +* **author:** Josh Klontz
  285 +* **properties:** None
  286 +
docs/docs/docs/plugins/gui.md 0 → 100644
  1 +---
  2 +
  3 +# AdjacentOverlayTransform
  4 +
  5 +Load the image named in the specified property, draw it on the current matrix adjacent to the rect specified in the other property.
  6 +
  7 +* **file:** gui/adjacentoverlay.cpp
  8 +* **inherits:** [Transform](../cpp_api.md#transform)
  9 +* **author:** Charles Otto
  10 +* **properties:** None
  11 +
  12 +---
  13 +
  14 +# DrawTransform
  15 +
  16 +Renders metadata onto the image.
  17 +
  18 +* **file:** gui/draw.cpp
  19 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  20 +* **author:** Josh Klontz
  21 +* **properties:** None
  22 +
  23 +---
  24 +
  25 +# DrawDelaunayTransform
  26 +
  27 +Creates a Delaunay triangulation based on a set of points
  28 +
  29 +* **file:** gui/drawdelaunay.cpp
  30 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  31 +* **author:** Scott Klum
  32 +* **properties:** None
  33 +
  34 +---
  35 +
  36 +# DrawGridLinesTransform
  37 +
  38 +Draws a grid on the image
  39 +
  40 +* **file:** gui/drawgridlines.cpp
  41 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  42 +* **author:** Josh Klontz
  43 +* **properties:** None
  44 +
  45 +---
  46 +
  47 +# DrawOpticalFlow
  48 +
  49 +Draw a line representing the direction and magnitude of optical flow at the specified points.
  50 +
  51 +* **file:** gui/drawopticalflow.cpp
  52 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  53 +* **author:** Austin Blanton
  54 +* **properties:** None
  55 +
  56 +---
  57 +
  58 +# DrawPropertiesPointTransform
  59 +
  60 +Draw the values of a list of properties at the specified point on the image
  61 +
  62 +* **file:** gui/drawpropertiespoint.cpp
  63 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  64 +* **author:** Charles Otto
  65 +* **properties:** None
  66 +
  67 +---
  68 +
  69 +# DrawPropertyPointTransform
  70 +
  71 +Draw the value of the specified property at the specified point on the image
  72 +
  73 +* **file:** gui/drawpropertypoint.cpp
  74 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  75 +* **author:** Charles Otto
  76 +* **properties:** None
  77 +
  78 +---
  79 +
  80 +# DrawSegmentation
  81 +
  82 +Fill in the segmentations or draw a line between intersecting segments.
  83 +
  84 +* **file:** gui/drawsegmentation.cpp
  85 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  86 +* **author:** Austin Blanton
  87 +* **properties:** None
  88 +
  89 +---
  90 +
  91 +# ShowTransform
  92 +
  93 +Displays templates in a GUI pop-up window using QT.
  94 +
  95 +* **file:** gui/show.cpp
  96 +* **inherits:** [TimeVaryingTransform](../cpp_api.md#timevaryingtransform)
  97 +* **author:** Charles Otto
  98 +* **properties:** None
  99 +
  100 +---
  101 +
  102 +# ShowTrainingTransform
  103 +
  104 +Show the training data
  105 +
  106 +* **file:** gui/show.cpp
  107 +* **inherits:** [Transform](../cpp_api.md#transform)
  108 +* **author:** Josh Klontz
  109 +* **properties:** None
  110 +
  111 +---
  112 +
  113 +# ManualTransform
  114 +
  115 +Manual selection of landmark locations
  116 +
  117 +* **file:** gui/show.cpp
  118 +* **inherits:** [ShowTransform](../cpp_api.md#showtransform)
  119 +* **author:** Scott Klum
  120 +* **properties:** None
  121 +
  122 +---
  123 +
  124 +# ManualRectsTransform
  125 +
  126 +Manual select rectangular regions on an image.
  127 +
  128 +* **file:** gui/show.cpp
  129 +* **inherits:** [ShowTransform](../cpp_api.md#showtransform)
  130 +* **author:** Charles Otto
  131 +* **properties:** None
  132 +
  133 +---
  134 +
  135 +# ElicitTransform
  136 +
  137 +Elicits metadata for templates in a pretty GUI
  138 +
  139 +* **file:** gui/show.cpp
  140 +* **inherits:** [ShowTransform](../cpp_api.md#showtransform)
  141 +* **author:** Scott Klum
  142 +* **properties:** None
  143 +
  144 +---
  145 +
  146 +# SurveyTransform
  147 +
  148 +Display an image, and asks a yes/no question about it
  149 +
  150 +* **file:** gui/show.cpp
  151 +* **inherits:** [ShowTransform](../cpp_api.md#showtransform)
  152 +* **author:** Charles Otto
  153 +* **properties:** None
  154 +
  155 +---
  156 +
  157 +# FPSLimit
  158 +
  159 +Limits the frequency of projects going through this transform to the input targetFPS
  160 +
  161 +* **file:** gui/show.cpp
  162 +* **inherits:** [TimeVaryingTransform](../cpp_api.md#timevaryingtransform)
  163 +* **author:** Charles Otto
  164 +* **properties:** None
  165 +
  166 +---
  167 +
  168 +# FPSCalc
  169 +
  170 +Calculates the average FPS of projects going through this transform, stores the result in AvgFPS
  171 +
  172 +* **file:** gui/show.cpp
  173 +* **inherits:** [TimeVaryingTransform](../cpp_api.md#timevaryingtransform)
  174 +* **author:** Charles Otto
  175 +* **properties:** None
  176 +
docs/docs/docs/plugins/imgproc.md 0 → 100644
  1 +---
  2 +
  3 +# AbsTransform
  4 +
  5 +Computes the absolute value of each element.
  6 +
  7 +* **file:** imgproc/abs.cpp
  8 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  9 +* **author:** Josh Klontz
  10 +* **properties:** None
  11 +
  12 +---
  13 +
  14 +# AbsDiffTransform
  15 +
  16 +Take the absolute difference of two matrices.
  17 +
  18 +* **file:** imgproc/absdiff.cpp
  19 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  20 +* **author:** Josh Klontz
  21 +* **properties:** None
  22 +
  23 +---
  24 +
  25 +# AdaptiveThresholdTransform
  26 +
  27 +Wraps OpenCV's adaptive thresholding.
  28 +
  29 +* **file:** imgproc/adaptivethreshold.cpp
  30 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  31 +* **author:** Scott Klum
  32 +* **properties:** None
  33 +
  34 +---
  35 +
  36 +# AffineTransform
  37 +
  38 +Performs a two or three point registration.
  39 +
  40 +* **file:** imgproc/affine.cpp
  41 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  42 +* **author:** Josh Klontz
  43 +* **properties:** None
  44 +
  45 +---
  46 +
  47 +# AndTransform
  48 +
  49 +Logical AND of two matrices.
  50 +
  51 +* **file:** imgproc/and.cpp
  52 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  53 +* **author:** Josh Klontz
  54 +* **properties:** None
  55 +
  56 +---
  57 +
  58 +# ApplyMaskTransform
  59 +
  60 +Applies a mask from the metadata.
  61 +
  62 +* **file:** imgproc/applymask.cpp
  63 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  64 +* **author:** Austin Blanton
  65 +* **properties:** None
  66 +
  67 +---
  68 +
  69 +# BayesianQuantizationTransform
  70 +
  71 +Quantize into a space where L1 distance approximates log-likelihood.
  72 +
  73 +* **file:** imgproc/bayesianquantization.cpp
  74 +* **inherits:** [Transform](../cpp_api.md#transform)
  75 +* **author:** Josh Klontz
  76 +* **properties:** None
  77 +
  78 +---
  79 +
  80 +# BinarizeTransform
  81 +
  82 +Approximate floats as signed bit.
  83 +
  84 +* **file:** imgproc/binarize.cpp
  85 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  86 +* **author:** Josh Klontz
  87 +* **properties:** None
  88 +
  89 +---
  90 +
  91 +# BlendTransform
  92 +
  93 +Alpha-blend two matrices
  94 +
  95 +* **file:** imgproc/blend.cpp
  96 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  97 +* **author:** Josh Klontz
  98 +* **properties:** None
  99 +
  100 +---
  101 +
  102 +# BlurTransform
  103 +
  104 +Gaussian blur
  105 +
  106 +* **file:** imgproc/blur.cpp
  107 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  108 +* **author:** Josh Klontz
  109 +* **properties:** None
  110 +
  111 +---
  112 +
  113 +# ByRowTransform
  114 +
  115 +Turns each row into its own matrix.
  116 +
  117 +* **file:** imgproc/byrow.cpp
  118 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  119 +* **author:** Josh Klontz
  120 +* **properties:** None
  121 +
  122 +---
  123 +
  124 +# CannyTransform
  125 +
  126 +Warpper to OpenCV Canny edge detector
  127 +
  128 +* **file:** imgproc/canny.cpp
  129 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  130 +* **author:** Scott Klum
  131 +* **properties:** None
  132 +
  133 +---
  134 +
  135 +# CatTransform
  136 +
  137 +Concatenates all input matrices into a single matrix.
  138 +
  139 +* **file:** imgproc/cat.cpp
  140 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  141 +* **author:** Josh Klontz
  142 +* **properties:** None
  143 +
  144 +---
  145 +
  146 +# CatColsTransform
  147 +
  148 +Concatenates all input matrices by column into a single matrix.
  149 +
  150 +* **file:** imgproc/catcols.cpp
  151 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  152 +* **author:** Austin Blanton
  153 +* **properties:** None
  154 +
  155 +---
  156 +
  157 +# CatRowsTransform
  158 +
  159 +Concatenates all input matrices by row into a single matrix.
  160 +
  161 +* **file:** imgproc/catrows.cpp
  162 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  163 +* **author:** Josh Klontz
  164 +* **properties:** None
  165 +
  166 +---
  167 +
  168 +# CenterTransform
  169 +
  170 +Normalize each dimension based on training data.
  171 +
  172 +* **file:** imgproc/center.cpp
  173 +* **inherits:** [Transform](../cpp_api.md#transform)
  174 +* **author:** Josh Klontz
  175 +* **properties:** None
  176 +
  177 +---
  178 +
  179 +# ContrastEqTransform
  180 +
  181 +Xiaoyang Tan; Triggs, B.;
  182 +
  183 +* **file:** imgproc/contrasteq.cpp
  184 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  185 +* **author:** Josh Klontz
  186 +* **properties:** None
  187 +
  188 +---
  189 +
  190 +# CropTransform
  191 +
  192 +Crops about the specified region of interest.
  193 +
  194 +* **file:** imgproc/crop.cpp
  195 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  196 +* **author:** Josh Klontz
  197 +* **properties:** None
  198 +
  199 +---
  200 +
  201 +# CropBlackTransform
  202 +
  203 +Crop out black borders
  204 +
  205 +* **file:** imgproc/cropblack.cpp
  206 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  207 +* **author:** Josh Klontz
  208 +* **properties:** None
  209 +
  210 +---
  211 +
  212 +# CropFromMaskTransform
  213 +
  214 +Crops image based on mask metadata
  215 +
  216 +* **file:** imgproc/cropfrommask.cpp
  217 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  218 +* **author:** Brendan Klare
  219 +* **properties:** None
  220 +
  221 +---
  222 +
  223 +# CropSquareTransform
  224 +
  225 +Trim the image so the width and the height are the same size.
  226 +
  227 +* **file:** imgproc/cropsquare.cpp
  228 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  229 +* **author:** Josh Klontz
  230 +* **properties:** None
  231 +
  232 +---
  233 +
  234 +# CryptographicHashTransform
  235 +
  236 +Wraps QCryptographicHash
  237 +
  238 +* **file:** imgproc/cryptographichash.cpp
  239 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  240 +* **author:** Josh Klontz
  241 +* **properties:** None
  242 +
  243 +---
  244 +
  245 +# CvtTransform
  246 +
  247 +Colorspace conversion.
  248 +
  249 +* **file:** imgproc/cvt.cpp
  250 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  251 +* **author:** Josh Klontz
  252 +* **properties:** None
  253 +
  254 +---
  255 +
  256 +# CvtFloatTransform
  257 +
  258 +Convert to floating point format.
  259 +
  260 +* **file:** imgproc/cvtfloat.cpp
  261 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  262 +* **author:** Josh Klontz
  263 +* **properties:** None
  264 +
  265 +---
  266 +
  267 +# CvtUCharTransform
  268 +
  269 +Convert to uchar format
  270 +
  271 +* **file:** imgproc/cvtuchar.cpp
  272 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  273 +* **author:** Josh Klontz
  274 +* **properties:** None
  275 +
  276 +---
  277 +
  278 +# NLMeansDenoisingTransform
  279 +
  280 +Wraps OpenCV Non-Local Means Denoising
  281 +
  282 +* **file:** imgproc/denoising.cpp
  283 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  284 +* **author:** Josh Klontz
  285 +* **properties:** None
  286 +
  287 +---
  288 +
  289 +# DiscardAlphaTransform
  290 +
  291 +Drop the alpha channel (if exists).
  292 +
  293 +* **file:** imgproc/discardalpha.cpp
  294 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  295 +* **author:** Austin Blanton
  296 +* **properties:** None
  297 +
  298 +---
  299 +
  300 +# DivTransform
  301 +
  302 +Enforce a multiple of
  303 +
  304 +* **file:** imgproc/div.cpp
  305 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  306 +* **author:** Josh Klontz
  307 +* **properties:** None
  308 +
  309 +---
  310 +
  311 +# DoGTransform
  312 +
  313 +Difference of gaussians
  314 +
  315 +* **file:** imgproc/dog.cpp
  316 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  317 +* **author:** Josh Klontz
  318 +* **properties:** None
  319 +
  320 +---
  321 +
  322 +# DownsampleTransform
  323 +
  324 +Downsample the rows and columns of a matrix.
  325 +
  326 +* **file:** imgproc/downsample.cpp
  327 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  328 +* **author:** Lacey Best-Rowden
  329 +* **properties:** None
  330 +
  331 +---
  332 +
  333 +# DupTransform
  334 +
  335 +Duplicates the template data.
  336 +
  337 +* **file:** imgproc/dup.cpp
  338 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  339 +* **author:** Josh Klontz
  340 +* **properties:** None
  341 +
  342 +---
  343 +
  344 +# EnsureChannelsTransform
  345 +
  346 +Enforce the matrix has a certain number of channels by adding or removing channels.
  347 +
  348 +* **file:** imgproc/ensurechannels.cpp
  349 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  350 +* **author:** Josh Klontz
  351 +* **properties:** None
  352 +
  353 +---
  354 +
  355 +# EqualizeHistTransform
  356 +
  357 +Histogram equalization
  358 +
  359 +* **file:** imgproc/equalizehist.cpp
  360 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  361 +* **author:** Josh Klontz
  362 +* **properties:** None
  363 +
  364 +---
  365 +
  366 +# FlipTransform
  367 +
  368 +Flips the image about an axis.
  369 +
  370 +* **file:** imgproc/flip.cpp
  371 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  372 +* **author:** Josh Klontz
  373 +* **properties:** None
  374 +
  375 +---
  376 +
  377 +# FloodTransform
  378 +
  379 +Fill black pixels with the specified color.
  380 +
  381 +* **file:** imgproc/flood.cpp
  382 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  383 +* **author:** Josh Klontz
  384 +* **properties:** None
  385 +
  386 +---
  387 +
  388 +# GaborTransform
  389 +
  390 +http://en.wikipedia.org/wiki/Gabor_filter
  391 +
  392 +* **file:** imgproc/gabor.cpp
  393 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  394 +* **author:** Josh Klontz
  395 +* **properties:** None
  396 +
  397 +---
  398 +
  399 +# GaborJetTransform
  400 +
  401 +A vector of gabor wavelets applied at a point.
  402 +
  403 +* **file:** imgproc/gabor.cpp
  404 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  405 +* **author:** Josh Klontz
  406 +* **properties:** None
  407 +
  408 +---
  409 +
  410 +# GammaTransform
  411 +
  412 +Gamma correction
  413 +
  414 +* **file:** imgproc/gamma.cpp
  415 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  416 +* **author:** Josh Klontz
  417 +* **properties:** None
  418 +
  419 +---
  420 +
  421 +# GradientTransform
  422 +
  423 +Computes magnitude and/or angle of image.
  424 +
  425 +* **file:** imgproc/gradient.cpp
  426 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  427 +* **author:** Josh Klontz
  428 +* **properties:** None
  429 +
  430 +---
  431 +
  432 +# GradientMaskTransform
  433 +
  434 +Masks image according to pixel change.
  435 +
  436 +* **file:** imgproc/gradientmask.cpp
  437 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  438 +* **author:** Josh Klontz
  439 +* **properties:** None
  440 +
  441 +---
  442 +
  443 +# GroupTransform
  444 +
  445 +Group all input matrices into a single matrix.
  446 +
  447 +* **file:** imgproc/group.cpp
  448 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  449 +* **author:** Josh Klontz
  450 +* **properties:** None
  451 +
  452 +---
  453 +
  454 +# HistTransform
  455 +
  456 +Histograms the matrix
  457 +
  458 +* **file:** imgproc/hist.cpp
  459 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  460 +* **author:** Josh Klontz
  461 +* **properties:** None
  462 +
  463 +---
  464 +
  465 +# HistBinTransform
  466 +
  467 +Quantizes the values into bins.
  468 +
  469 +* **file:** imgproc/histbin.cpp
  470 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  471 +* **author:** Josh Klontz
  472 +* **properties:** None
  473 +
  474 +---
  475 +
  476 +# HistEqQuantizationTransform
  477 +
  478 +Approximate floats as uchar with different scalings for each dimension.
  479 +
  480 +* **file:** imgproc/histeqquantization.cpp
  481 +* **inherits:** [Transform](../cpp_api.md#transform)
  482 +* **author:** Josh Klontz
  483 +* **properties:** None
  484 +
  485 +---
  486 +
  487 +# HoGDescriptorTransform
  488 +
  489 +OpenCV HOGDescriptor wrapper
  490 +
  491 +* **file:** imgproc/hog.cpp
  492 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  493 +* **author:** Austin Blanton
  494 +* **properties:** None
  495 +
  496 +---
  497 +
  498 +# InpaintTransform
  499 +
  500 +Wraps OpenCV inpainting
  501 +
  502 +* **file:** imgproc/inpaint.cpp
  503 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  504 +* **author:** Josh Klontz
  505 +* **properties:** None
  506 +
  507 +---
  508 +
  509 +# IntegralTransform
  510 +
  511 +Computes integral image.
  512 +
  513 +* **file:** imgproc/integral.cpp
  514 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  515 +* **author:** Josh Klontz
  516 +* **properties:** None
  517 +
  518 +---
  519 +
  520 +# IntegralHistTransform
  521 +
  522 +An integral histogram
  523 +
  524 +* **file:** imgproc/integralhist.cpp
  525 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  526 +* **author:** Josh Klontz
  527 +* **properties:** None
  528 +
  529 +---
  530 +
  531 +# IntegralSamplerTransform
  532 +
  533 +Sliding window feature extraction from a multi-channel integral image.
  534 +
  535 +* **file:** imgproc/integralsampler.cpp
  536 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  537 +* **author:** Josh Klontz
  538 +* **properties:** None
  539 +
  540 +---
  541 +
  542 +# KernelHashTransform
  543 +
  544 +Kernel hash
  545 +
  546 +* **file:** imgproc/kernelhash.cpp
  547 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  548 +* **author:** Josh Klontz
  549 +* **properties:** None
  550 +
  551 +---
  552 +
  553 +# KeyPointDescriptorTransform
  554 +
  555 +Wraps OpenCV Key Point Descriptor
  556 +
  557 +* **file:** imgproc/keypointdescriptor.cpp
  558 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  559 +* **author:** Josh Klontz
  560 +* **properties:** None
  561 +
  562 +---
  563 +
  564 +# LargestConvexAreaTransform
  565 +
  566 +Set the template's label to the area of the largest convex hull.
  567 +
  568 +* **file:** imgproc/largestconvexarea.cpp
  569 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  570 +* **author:** Josh Klontz
  571 +* **properties:** None
  572 +
  573 +---
  574 +
  575 +# LBPTransform
  576 +
  577 +Ahonen, T.; Hadid, A.; Pietikainen, M.;
  578 +
  579 +* **file:** imgproc/lbp.cpp
  580 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  581 +* **author:** Josh Klontz
  582 +* **properties:** None
  583 +
  584 +---
  585 +
  586 +# LimitSizeTransform
  587 +
  588 +Limit the size of the template
  589 +
  590 +* **file:** imgproc/limitsize.cpp
  591 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  592 +* **author:** Josh Klontz
  593 +* **properties:** None
  594 +
  595 +---
  596 +
  597 +# LTPTransform
  598 +
  599 +Tan, Xiaoyang, and Bill Triggs. "Enhanced local texture feature sets for face recognition under difficult lighting conditions." Analysis and Modeling of Faces and Gestures. Springer Berlin Heidelberg, 2007. 168-182.
  600 +
  601 +* **file:** imgproc/ltp.cpp
  602 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  603 +* **authors:** Brendan Klare, Josh Klontz
  604 +* **properties:** None
  605 +
  606 +---
  607 +
  608 +# MAddTransform
  609 +
  610 +dst = a*src+b
  611 +
  612 +* **file:** imgproc/madd.cpp
  613 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  614 +* **author:** Josh Klontz
  615 +* **properties:** None
  616 +
  617 +---
  618 +
  619 +# MaskTransform
  620 +
  621 +Applies an eliptical mask
  622 +
  623 +* **file:** imgproc/mask.cpp
  624 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  625 +* **author:** Josh Klontz
  626 +* **properties:** None
  627 +
  628 +---
  629 +
  630 +# MatStatsTransform
  631 +
  632 +Statistics
  633 +
  634 +* **file:** imgproc/matstats.cpp
  635 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  636 +* **author:** Josh Klontz
  637 +* **properties:** None
  638 +
  639 +---
  640 +
  641 +# MeanTransform
  642 +
  643 +Computes the mean of a set of templates.
  644 +
  645 +* **file:** imgproc/mean.cpp
  646 +* **inherits:** [Transform](../cpp_api.md#transform)
  647 +* **author:** Scott Klum
  648 +* **properties:** None
  649 +
  650 +---
  651 +
  652 +# MeanFillTransform
  653 +
  654 +Fill 0 pixels with the mean of non-0 pixels.
  655 +
  656 +* **file:** imgproc/meanfill.cpp
  657 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  658 +* **author:** Josh Klontz
  659 +* **properties:** None
  660 +
  661 +---
  662 +
  663 +# MergeTransform
  664 +
  665 +Wraps OpenCV merge
  666 +
  667 +* **file:** imgproc/merge.cpp
  668 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  669 +* **author:** Josh Klontz
  670 +* **properties:** None
  671 +
  672 +---
  673 +
  674 +# MorphTransform
  675 +
  676 +Morphological operator
  677 +
  678 +* **file:** imgproc/morph.cpp
  679 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  680 +* **author:** Josh Klontz
  681 +* **properties:** None
  682 +
  683 +---
  684 +
  685 +# BuildScalesTransform
  686 +
  687 +Document me
  688 +
  689 +* **file:** imgproc/multiscale.cpp
  690 +* **inherits:** [Transform](../cpp_api.md#transform)
  691 +* **author:** Austin Blanton
  692 +* **properties:** None
  693 +
  694 +---
  695 +
  696 +# NormalizeTransform
  697 +
  698 +Normalize matrix to unit length
  699 +
  700 +* **file:** imgproc/normalize.cpp
  701 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  702 +* **author:** Josh Klontz
  703 +* **properties:**
  704 +
  705 + * **NormType**- Values are NORM_INF, NORM_L1, NORM_L2, NORM_MINMAX
  706 + * **ByRow**- If true normalize each row independently otherwise normalize the entire matrix.
  707 + * **alpha**- Lower bound if using NORM_MINMAX. Value to normalize to otherwise.
  708 + * **beta**- Upper bound if using NORM_MINMAX. Not used otherwise.
  709 + * **squareRoot**- If true compute the signed square root of the output after normalization.
  710 +
  711 +
  712 +---
  713 +
  714 +# OrigLinearRegressionTransform
  715 +
  716 +Prediction with magic numbers from jmp; must get input as blue;green;red
  717 +
  718 +* **file:** imgproc/origlinearregression.cpp
  719 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  720 +* **author:** E. Taborsky
  721 +* **properties:** None
  722 +
  723 +---
  724 +
  725 +# PackTransform
  726 +
  727 +Compress two uchar into one uchar.
  728 +
  729 +* **file:** imgproc/pack.cpp
  730 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  731 +* **author:** Josh Klontz
  732 +* **properties:** None
  733 +
  734 +---
  735 +
  736 +# PowTransform
  737 +
  738 +Raise each element to the specified power.
  739 +
  740 +* **file:** imgproc/pow.cpp
  741 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  742 +* **author:** Josh Klontz
  743 +* **properties:** None
  744 +
  745 +---
  746 +
  747 +# ProductQuantizationDistance
  748 +
  749 +Distance in a product quantized space
  750 +
  751 +* **file:** imgproc/productquantization.cpp
  752 +* **inherits:** [UntrainableDistance](../cpp_api.md#untrainabledistance)
  753 +* **author:** Josh Klontz
  754 +* **properties:** None
  755 +
  756 +---
  757 +
  758 +# ProductQuantizationTransform
  759 +
  760 +Product quantization
  761 +
  762 +* **file:** imgproc/productquantization.cpp
  763 +* **inherits:** [Transform](../cpp_api.md#transform)
  764 +* **author:** Josh Klontz
  765 +* **properties:** None
  766 +
  767 +---
  768 +
  769 +# QuantizeTransform
  770 +
  771 +Approximate floats as uchar.
  772 +
  773 +* **file:** imgproc/quantize.cpp
  774 +* **inherits:** [Transform](../cpp_api.md#transform)
  775 +* **author:** Josh Klontz
  776 +* **properties:** None
  777 +
  778 +---
  779 +
  780 +# RankTransform
  781 +
  782 +Converts each element to its rank-ordered value.
  783 +
  784 +* **file:** imgproc/rank.cpp
  785 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  786 +* **author:** Josh Klontz
  787 +* **properties:** None
  788 +
  789 +---
  790 +
  791 +# RectRegionsTransform
  792 +
  793 +Subdivide matrix into rectangular subregions.
  794 +
  795 +* **file:** imgproc/rectregions.cpp
  796 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  797 +* **author:** Josh Klontz
  798 +* **properties:** None
  799 +
  800 +---
  801 +
  802 +# RecursiveIntegralSamplerTransform
  803 +
  804 +Construct template in a recursive decent manner.
  805 +
  806 +* **file:** imgproc/recursiveintegralsampler.cpp
  807 +* **inherits:** [Transform](../cpp_api.md#transform)
  808 +* **author:** Josh Klontz
  809 +* **properties:** None
  810 +
  811 +---
  812 +
  813 +# RedLinearRegressionTransform
  814 +
  815 +Prediction using only the red wavelength; magic numbers from jmp
  816 +
  817 +* **file:** imgproc/redlinearregression.cpp
  818 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  819 +* **author:** E. Taborsky
  820 +* **properties:** None
  821 +
  822 +---
  823 +
  824 +# ReshapeTransform
  825 +
  826 +Reshape the each matrix to the specified number of rows.
  827 +
  828 +* **file:** imgproc/reshape.cpp
  829 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  830 +* **author:** Josh Klontz
  831 +* **properties:** None
  832 +
  833 +---
  834 +
  835 +# ResizeTransform
  836 +
  837 +Resize the template
  838 +
  839 +* **file:** imgproc/resize.cpp
  840 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  841 +* **author:** Josh Klontz
  842 +* **properties:** None
  843 +
  844 +---
  845 +
  846 +# RevertAffineTransform
  847 +
  848 +Designed for use after eye detection + Stasm, this will
  849 +
  850 +* **file:** imgproc/revertaffine.cpp
  851 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  852 +* **author:** Brendan Klare
  853 +* **properties:** None
  854 +
  855 +---
  856 +
  857 +# RGTransform
  858 +
  859 +Normalized RG color space.
  860 +
  861 +* **file:** imgproc/rg.cpp
  862 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  863 +* **author:** Josh Klontz
  864 +* **properties:** None
  865 +
  866 +---
  867 +
  868 +# RndPointTransform
  869 +
  870 +Generates a random landmark.
  871 +
  872 +* **file:** imgproc/rndpoint.cpp
  873 +* **inherits:** [Transform](../cpp_api.md#transform)
  874 +* **author:** Josh Klontz
  875 +* **properties:** None
  876 +
  877 +---
  878 +
  879 +# RndRegionTransform
  880 +
  881 +Selects a random region.
  882 +
  883 +* **file:** imgproc/rndregion.cpp
  884 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  885 +* **author:** Josh Klontz
  886 +* **properties:** None
  887 +
  888 +---
  889 +
  890 +# RndRotateTransform
  891 +
  892 +Randomly rotates an image in a specified range.
  893 +
  894 +* **file:** imgproc/rndrotate.cpp
  895 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  896 +* **author:** Scott Klum
  897 +* **properties:** None
  898 +
  899 +---
  900 +
  901 +# RndSubspaceTransform
  902 +
  903 +Generates a random subspace.
  904 +
  905 +* **file:** imgproc/rndsubspace.cpp
  906 +* **inherits:** [Transform](../cpp_api.md#transform)
  907 +* **author:** Josh Klontz
  908 +* **properties:** None
  909 +
  910 +---
  911 +
  912 +# ROITransform
  913 +
  914 +Crops the rectangular regions of interest.
  915 +
  916 +* **file:** imgproc/roi.cpp
  917 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  918 +* **author:** Josh Klontz
  919 +* **properties:** None
  920 +
  921 +---
  922 +
  923 +# ROIFromPtsTransform
  924 +
  925 +Crops the rectangular regions of interest from given points and sizes.
  926 +
  927 +* **file:** imgproc/roifrompoints.cpp
  928 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  929 +* **author:** Austin Blanton
  930 +* **properties:** None
  931 +
  932 +---
  933 +
  934 +# RootNormTransform
  935 +
  936 +dst=sqrt(norm_L1(src)) proposed as RootSIFT in
  937 +
  938 +* **file:** imgproc/rootnorm.cpp
  939 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  940 +* **author:** Josh Klontz
  941 +* **properties:** None
  942 +
  943 +---
  944 +
  945 +# RowWiseMeanCenterTransform
  946 +
  947 +Remove the row-wise training set average.
  948 +
  949 +* **file:** imgproc/rowwisemeancenter.cpp
  950 +* **inherits:** [Transform](../cpp_api.md#transform)
  951 +* **author:** Josh Klontz
  952 +* **properties:** None
  953 +
  954 +---
  955 +
  956 +# SampleFromMaskTransform
  957 +
  958 +Samples pixels from a mask.
  959 +
  960 +* **file:** imgproc/samplefrommask.cpp
  961 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  962 +* **author:** Scott Klum
  963 +* **properties:** None
  964 +
  965 +---
  966 +
  967 +# ScaleTransform
  968 +
  969 +Scales using the given factor
  970 +
  971 +* **file:** imgproc/scale.cpp
  972 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  973 +* **author:** Scott Klum
  974 +* **properties:** None
  975 +
  976 +---
  977 +
  978 +# SIFTDescriptorTransform
  979 +
  980 +Specialize wrapper OpenCV SIFT wrapper
  981 +
  982 +* **file:** imgproc/sift.cpp
  983 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  984 +* **author:** Josh Klontz
  985 +* **properties:** None
  986 +
  987 +---
  988 +
  989 +# SkinMaskTransform
  990 +
  991 +http://worldofcameras.wordpress.com/tag/skin-detection-opencv/
  992 +
  993 +* **file:** imgproc/skinmask.cpp
  994 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  995 +* **author:** Josh Klontz
  996 +* **properties:** None
  997 +
  998 +---
  999 +
  1000 +# SlidingWindowTransform
  1001 +
  1002 +Applies a transform to a sliding window.
  1003 +
  1004 +* **file:** imgproc/slidingwindow.cpp
  1005 +* **inherits:** [Transform](../cpp_api.md#transform)
  1006 +* **author:** Austin Blanton
  1007 +* **properties:** None
  1008 +
  1009 +---
  1010 +
  1011 +# IntegralSlidingWindowTransform
  1012 +
  1013 +Overloads SlidingWindowTransform for integral images that should be
  1014 +
  1015 +* **file:** imgproc/slidingwindow.cpp
  1016 +* **inherits:** [SlidingWindowTransform](../cpp_api.md#slidingwindowtransform)
  1017 +* **author:** Josh Klontz
  1018 +* **properties:** None
  1019 +
  1020 +---
  1021 +
  1022 +# SplitChannelsTransform
  1023 +
  1024 +Split a multi-channel matrix into several single-channel matrices.
  1025 +
  1026 +* **file:** imgproc/splitchannels.cpp
  1027 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  1028 +* **author:** Josh Klontz
  1029 +* **properties:** None
  1030 +
  1031 +---
  1032 +
  1033 +# SubdivideTransform
  1034 +
  1035 +Divide the matrix into 4 smaller matricies of equal size.
  1036 +
  1037 +* **file:** imgproc/subdivide.cpp
  1038 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  1039 +* **author:** Josh Klontz
  1040 +* **properties:** None
  1041 +
  1042 +---
  1043 +
  1044 +# SubtractTransform
  1045 +
  1046 +Subtract two matrices.
  1047 +
  1048 +* **file:** imgproc/subtract.cpp
  1049 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  1050 +* **author:** Josh Klontz
  1051 +* **properties:** None
  1052 +
  1053 +---
  1054 +
  1055 +# ThresholdTransform
  1056 +
  1057 +Wraps OpenCV's adaptive thresholding.
  1058 +
  1059 +* **file:** imgproc/threshold.cpp
  1060 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  1061 +* **author:** Scott Klum
  1062 +* **properties:** None
  1063 +
  1064 +---
  1065 +
  1066 +# WatershedSegmentationTransform
  1067 +
  1068 +Applies watershed segmentation.
  1069 +
  1070 +* **file:** imgproc/watershedsegmentation.cpp
  1071 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  1072 +* **author:** Austin Blanton
  1073 +* **properties:** None
  1074 +
docs/docs/docs/plugins/io.md 0 → 100644
  1 +---
  2 +
  3 +# DecodeTransform
  4 +
  5 +Decodes images
  6 +
  7 +* **file:** io/decode.cpp
  8 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  9 +* **author:** Josh Klontz
  10 +* **properties:** None
  11 +
  12 +---
  13 +
  14 +# DownloadTransform
  15 +
  16 +Downloads an image from a URL
  17 +
  18 +* **file:** io/download.cpp
  19 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  20 +* **author:** Josh Klontz
  21 +* **properties:** None
  22 +
  23 +---
  24 +
  25 +# IncrementalOutputTransform
  26 +
  27 +Incrementally output templates received to a gallery, based on the current filename
  28 +
  29 +* **file:** io/incrementaloutput.cpp
  30 +* **inherits:** [TimeVaryingTransform](../cpp_api.md#timevaryingtransform)
  31 +* **author:** Charles Otto
  32 +* **properties:** None
  33 +
  34 +---
  35 +
  36 +# OpenTransform
  37 +
  38 +Applies br::Format to br::Template::file::name and appends results.
  39 +
  40 +* **file:** io/open.cpp
  41 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  42 +* **author:** Josh Klontz
  43 +* **properties:** None
  44 +
  45 +---
  46 +
  47 +# PrintTransform
  48 +
  49 +Prints the template's file to stdout or stderr.
  50 +
  51 +* **file:** io/print.cpp
  52 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  53 +* **author:** Josh Klontz
  54 +* **properties:** None
  55 +
  56 +---
  57 +
  58 +# ReadTransform
  59 +
  60 +Read images
  61 +
  62 +* **file:** io/read.cpp
  63 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  64 +* **author:** Josh Klontz
  65 +* **properties:** None
  66 +
  67 +---
  68 +
  69 +# ReadLandmarksTransform
  70 +
  71 +Read landmarks from a file and associate them with the correct templates.
  72 +
  73 +* **file:** io/readlandmarks.cpp
  74 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  75 +* **author:** Scott Klum
  76 +* **properties:** None
  77 +
  78 +---
  79 +
  80 +# WriteTransform
  81 +
  82 +Write all mats to disk as images.
  83 +
  84 +* **file:** io/write.cpp
  85 +* **inherits:** [TimeVaryingTransform](../cpp_api.md#timevaryingtransform)
  86 +* **author:** Brendan Klare
  87 +* **properties:** None
  88 +
  89 +---
  90 +
  91 +# YouTubeFacesDBTransform
  92 +
  93 +Implements the YouTubesFaceDB
  94 +
  95 +* **file:** io/youtubefacesdb.cpp
  96 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  97 +* **author:** Josh Klontz
  98 +* **properties:** None
  99 +
docs/docs/docs/plugins/metadata.md 0 → 100644
  1 +---
  2 +
  3 +# AnonymizeLandmarksTransform
  4 +
  5 +Remove a name from a point/rect
  6 +
  7 +* **file:** metadata/anonymizelandmarks.cpp
  8 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  9 +* **author:** Scott Klum
  10 +* **properties:** None
  11 +
  12 +---
  13 +
  14 +# AsTransform
  15 +
  16 +Change the br::Template::file extension
  17 +
  18 +* **file:** metadata/as.cpp
  19 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  20 +* **author:** Josh Klontz
  21 +* **properties:** None
  22 +
  23 +---
  24 +
  25 +# AveragePointsTransform
  26 +
  27 +Averages a set of landmarks into a new landmark
  28 +
  29 +* **file:** metadata/averagepoints.cpp
  30 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  31 +* **author:** Brendan Klare
  32 +* **properties:** None
  33 +
  34 +---
  35 +
  36 +# CascadeTransform
  37 +
  38 +Wraps OpenCV cascade classifier
  39 +
  40 +* **file:** metadata/cascade.cpp
  41 +* **inherits:** [MetaTransform](../cpp_api.md#metatransform)
  42 +* **authors:** Josh Klontz, David Crouse
  43 +* **properties:** None
  44 +
  45 +---
  46 +
  47 +# CheckTransform
  48 +
  49 +Checks the template for NaN values.
  50 +
  51 +* **file:** metadata/check.cpp
  52 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  53 +* **author:** Josh Klontz
  54 +* **properties:** None
  55 +
  56 +---
  57 +
  58 +# ClearPointsTransform
  59 +
  60 +Clears the points from a template
  61 +
  62 +* **file:** metadata/clearpoints.cpp
  63 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  64 +* **author:** Brendan Klare
  65 +* **properties:** None
  66 +
  67 +---
  68 +
  69 +# ConsolidateDetectionsTransform
  70 +
  71 +Consolidate redundant/overlapping detections.
  72 +
  73 +* **file:** metadata/consolidatedetections.cpp
  74 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  75 +* **author:** Brendan Klare
  76 +* **properties:** None
  77 +
  78 +---
  79 +
  80 +# CropRectTransform
  81 +
  82 +Crops the width and height of a template's rects by input width and height factors.
  83 +
  84 +* **file:** metadata/croprect.cpp
  85 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  86 +* **author:** Scott Klum
  87 +* **properties:** None
  88 +
  89 +---
  90 +
  91 +# DelaunayTransform
  92 +
  93 +Creates a Delaunay triangulation based on a set of points
  94 +
  95 +* **file:** metadata/delaunay.cpp
  96 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  97 +* **author:** Scott Klum
  98 +* **properties:** None
  99 +
  100 +---
  101 +
  102 +# ExpandRectTransform
  103 +
  104 +Expand the width and height of a template's rects by input width and height factors.
  105 +
  106 +* **file:** metadata/expandrect.cpp
  107 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  108 +* **author:** Charles Otto
  109 +* **properties:** None
  110 +
  111 +---
  112 +
  113 +# ExtractMetadataTransform
  114 +
  115 +Create matrix from metadata values.
  116 +
  117 +* **file:** metadata/extractmetadata.cpp
  118 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  119 +* **author:** Josh Klontz
  120 +* **properties:** None
  121 +
  122 +---
  123 +
  124 +# ASEFEyesTransform
  125 +
  126 +Bolme, D.S.; Draper, B.A.; Beveridge, J.R.;
  127 +
  128 +* **file:** metadata/eyes.cpp
  129 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  130 +* **authors:** David Bolme, Josh Klontz
  131 +* **properties:** None
  132 +
  133 +---
  134 +
  135 +# FilterDupeMetadataTransform
  136 +
  137 +Removes duplicate templates based on a unique metadata key
  138 +
  139 +* **file:** metadata/filterdupemetadata.cpp
  140 +* **inherits:** [TimeVaryingTransform](../cpp_api.md#timevaryingtransform)
  141 +* **author:** Austin Blanton
  142 +* **properties:** None
  143 +
  144 +---
  145 +
  146 +# GridTransform
  147 +
  148 +Add landmarks to the template in a grid layout
  149 +
  150 +* **file:** metadata/grid.cpp
  151 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  152 +* **author:** Josh Klontz
  153 +* **properties:** None
  154 +
  155 +---
  156 +
  157 +# GroundTruthTransform
  158 +
  159 +Add any ground truth to the template using the file's base name.
  160 +
  161 +* **file:** metadata/groundtruth.cpp
  162 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  163 +* **author:** Josh Klontz
  164 +* **properties:** None
  165 +
  166 +---
  167 +
  168 +# HOGPersonDetectorTransform
  169 +
  170 +Detects objects with OpenCV's built-in HOG detection.
  171 +
  172 +* **file:** metadata/hogpersondetector.cpp
  173 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  174 +* **author:** Austin Blanton
  175 +* **properties:** None
  176 +
  177 +---
  178 +
  179 +# IfMetadataTransform
  180 +
  181 +Clear templates without the required metadata.
  182 +
  183 +* **file:** metadata/ifmetadata.cpp
  184 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  185 +* **author:** Josh Klontz
  186 +* **properties:** None
  187 +
  188 +---
  189 +
  190 +# ImpostorUniquenessMeasureTransform
  191 +
  192 +Impostor Uniqueness Measure
  193 +
  194 +* **file:** metadata/imposteruniquenessmeasure.cpp
  195 +* **inherits:** [Transform](../cpp_api.md#transform)
  196 +* **author:** Josh Klontz
  197 +* **properties:** None
  198 +
  199 +---
  200 +
  201 +# JSONTransform
  202 +
  203 +Represent the metadata as JSON template data.
  204 +
  205 +* **file:** metadata/json.cpp
  206 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  207 +* **author:** Josh Klontz
  208 +* **properties:** None
  209 +
  210 +---
  211 +
  212 +# KeepMetadataTransform
  213 +
  214 +Retains only the values for the keys listed, to reduce template size
  215 +
  216 +* **file:** metadata/keepmetadata.cpp
  217 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  218 +* **author:** Scott Klum
  219 +* **properties:** None
  220 +
  221 +---
  222 +
  223 +# KeyPointDetectorTransform
  224 +
  225 +Wraps OpenCV Key Point Detector
  226 +
  227 +* **file:** metadata/keypointdetector.cpp
  228 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  229 +* **author:** Josh Klontz
  230 +* **properties:** None
  231 +
  232 +---
  233 +
  234 +# KeyToRectTransform
  235 +
  236 +Convert values of key_X, key_Y, key_Width, key_Height to a rect.
  237 +
  238 +* **file:** metadata/keytorect.cpp
  239 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  240 +* **author:** Jordan Cheney
  241 +* **properties:** None
  242 +
  243 +---
  244 +
  245 +# MongooseInitializer
  246 +
  247 +Initialize mongoose server
  248 +
  249 +* **file:** metadata/mongoose.cpp
  250 +* **inherits:** [Initializer](../cpp_api.md#initializer)
  251 +* **author:** Unknown
  252 +* **properties:** None
  253 +
  254 +---
  255 +
  256 +# NameTransform
  257 +
  258 +Sets the template's matrix data to the br::File::name.
  259 +
  260 +* **file:** metadata/name.cpp
  261 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  262 +* **author:** Josh Klontz
  263 +* **properties:** None
  264 +
  265 +---
  266 +
  267 +# NameLandmarksTransform
  268 +
  269 +Name a point/rect
  270 +
  271 +* **file:** metadata/namelandmarks.cpp
  272 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  273 +* **author:** Scott Klum
  274 +* **properties:** None
  275 +
  276 +---
  277 +
  278 +# NormalizePointsTransform
  279 +
  280 +Normalize points to be relative to a single point
  281 +
  282 +* **file:** metadata/normalizepoints.cpp
  283 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  284 +* **author:** Scott Klum
  285 +* **properties:** None
  286 +
  287 +---
  288 +
  289 +# PointDisplacementTransform
  290 +
  291 +Normalize points to be relative to a single point
  292 +
  293 +* **file:** metadata/pointdisplacement.cpp
  294 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  295 +* **author:** Scott Klum
  296 +* **properties:** None
  297 +
  298 +---
  299 +
  300 +# PointsToMatrixTransform
  301 +
  302 +Converts either the file::points() list or a QList<QPointF> metadata item to be the template's matrix
  303 +
  304 +* **file:** metadata/pointstomatrix.cpp
  305 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  306 +* **author:** Scott Klum
  307 +* **properties:** None
  308 +
  309 +---
  310 +
  311 +# ProcrustesTransform
  312 +
  313 +Procrustes alignment of points
  314 +
  315 +* **file:** metadata/procrustes.cpp
  316 +* **inherits:** [MetadataTransform](../cpp_api.md#metadatatransform)
  317 +* **author:** Scott Klum
  318 +* **properties:** None
  319 +
  320 +---
  321 +
  322 +# RectsToTemplatesTransform
  323 +
  324 +For each rectangle bounding box in src, a new
  325 +
  326 +* **file:** metadata/rectstotemplates.cpp
  327 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  328 +* **author:** Brendan Klare
  329 +* **properties:** None
  330 +
  331 +---
  332 +
  333 +# RegexPropertyTransform
  334 +
  335 +Apply the input regular expression to the value of inputProperty, store the matched portion in outputProperty.
  336 +
  337 +* **file:** metadata/regexproperty.cpp
  338 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  339 +* **author:** Charles Otto
  340 +* **properties:** None
  341 +
  342 +---
  343 +
  344 +# RemoveMetadataTransform
  345 +
  346 +Removes a metadata field from all templates
  347 +
  348 +* **file:** metadata/removemetadata.cpp
  349 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  350 +* **author:** Brendan Klare
  351 +* **properties:** None
  352 +
  353 +---
  354 +
  355 +# RemoveTemplatesTransform
  356 +
  357 +Remove templates with the specified file extension or metadata value.
  358 +
  359 +* **file:** metadata/removetemplates.cpp
  360 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  361 +* **author:** Josh Klontz
  362 +* **properties:** None
  363 +
  364 +---
  365 +
  366 +# RenameTransform
  367 +
  368 +Rename metadata key
  369 +
  370 +* **file:** metadata/rename.cpp
  371 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  372 +* **author:** Josh Klontz
  373 +* **properties:** None
  374 +
  375 +---
  376 +
  377 +# RenameFirstTransform
  378 +
  379 +Rename first found metadata key
  380 +
  381 +* **file:** metadata/renamefirst.cpp
  382 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  383 +* **author:** Josh Klontz
  384 +* **properties:** None
  385 +
  386 +---
  387 +
  388 +# ReorderPointsTransform
  389 +
  390 +Reorder the points such that points[from[i]] becomes points[to[i]] and
  391 +
  392 +* **file:** metadata/reorderpoints.cpp
  393 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  394 +* **author:** Scott Klum
  395 +* **properties:** None
  396 +
  397 +---
  398 +
  399 +# RestoreMatTransform
  400 +
  401 +Set the last matrix of the input template to a matrix stored as metadata with input propName.
  402 +
  403 +* **file:** metadata/restoremat.cpp
  404 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  405 +* **author:** Charles Otto
  406 +* **properties:** None
  407 +
  408 +---
  409 +
  410 +# SaveMatTransform
  411 +
  412 +Store the last matrix of the input template as a metadata key with input property name.
  413 +
  414 +* **file:** metadata/savemat.cpp
  415 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  416 +* **author:** Charles Otto
  417 +* **properties:** None
  418 +
  419 +---
  420 +
  421 +# SelectPointsTransform
  422 +
  423 +Retains only landmarks/points at the provided indices
  424 +
  425 +* **file:** metadata/selectpoints.cpp
  426 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  427 +* **author:** Brendan Klare
  428 +* **properties:** None
  429 +
  430 +---
  431 +
  432 +# SetMetadataTransform
  433 +
  434 +Sets the metadata key/value pair.
  435 +
  436 +* **file:** metadata/setmetadata.cpp
  437 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  438 +* **author:** Josh Klontz
  439 +* **properties:** None
  440 +
  441 +---
  442 +
  443 +# SetPointsInRectTransform
  444 +
  445 +Set points relative to a rect
  446 +
  447 +* **file:** metadata/setpointsinrect.cpp
  448 +* **inherits:** [UntrainableMetadataTransform](../cpp_api.md#untrainablemetadatatransform)
  449 +* **author:** Jordan Cheney
  450 +* **properties:** None
  451 +
  452 +---
  453 +
  454 +# StasmInitializer
  455 +
  456 +Initialize Stasm
  457 +
  458 +* **file:** metadata/stasm4.cpp
  459 +* **inherits:** [Initializer](../cpp_api.md#initializer)
  460 +* **author:** Scott Klum
  461 +* **properties:** None
  462 +
  463 +---
  464 +
  465 +# StasmTransform
  466 +
  467 +Wraps STASM key point detector
  468 +
  469 +* **file:** metadata/stasm4.cpp
  470 +* **inherits:** [UntrainableTransform](../cpp_api.md#untrainabletransform)
  471 +* **author:** Scott Klum
  472 +* **properties:** None
  473 +
  474 +---
  475 +
  476 +# StopWatchTransform
  477 +
  478 +Gives time elapsed over a specified transform as a function of both images (or frames) and pixels.
  479 +
  480 +* **file:** metadata/stopwatch.cpp
  481 +* **inherits:** [MetaTransform](../cpp_api.md#metatransform)
  482 +* **authors:** Jordan Cheney, Josh Klontz
  483 +* **properties:** None
  484 +
docs/docs/docs/plugins/output.md 0 → 100644
  1 +---
  2 +
  3 +# bestOutput
  4 +
  5 +The highest scoring matches.
  6 +
  7 +* **file:** output/best.cpp
  8 +* **inherits:** [Output](../cpp_api.md#output)
  9 +* **author:** Josh Klontz
  10 +* **properties:** None
  11 +
  12 +---
  13 +
  14 +# csvOutput
  15 +
  16 +Comma separated values output.
  17 +
  18 +* **file:** output/csv.cpp
  19 +* **inherits:** [MatrixOutput](../cpp_api.md#matrixoutput)
  20 +* **author:** Josh Klontz
  21 +* **properties:** None
  22 +
  23 +---
  24 +
  25 +# DefaultOutput
  26 +
  27 +Adaptor class -- write a matrix output using Format classes.
  28 +
  29 +* **file:** output/default.cpp
  30 +* **inherits:** [MatrixOutput](../cpp_api.md#matrixoutput)
  31 +* **author:** Charles Otto
  32 +* **properties:** None
  33 +
  34 +---
  35 +
  36 +# EmptyOutput
  37 +
  38 +Output to the terminal.
  39 +
  40 +* **file:** output/empty.cpp
  41 +* **inherits:** [MatrixOutput](../cpp_api.md#matrixoutput)
  42 +* **author:** Josh Klontz
  43 +* **properties:** None
  44 +
  45 +---
  46 +
  47 +# evalOutput
  48 +
  49 +Evaluate the output matrix.
  50 +
  51 +* **file:** output/eval.cpp
  52 +* **inherits:** [MatrixOutput](../cpp_api.md#matrixoutput)
  53 +* **author:** Josh Klontz
  54 +* **properties:** None
  55 +
  56 +---
  57 +
  58 +# heatOutput
  59 +
  60 +Matrix-like output for heat maps.
  61 +
  62 +* **file:** output/heat.cpp
  63 +* **inherits:** [MatrixOutput](../cpp_api.md#matrixoutput)
  64 +* **author:** Scott Klum
  65 +* **properties:** None
  66 +
  67 +---
  68 +
  69 +# histOutput
  70 +
  71 +Score histogram.
  72 +
  73 +* **file:** output/hist.cpp
  74 +* **inherits:** [Output](../cpp_api.md#output)
  75 +* **author:** Josh Klontz
  76 +* **properties:** None
  77 +
  78 +---
  79 +
  80 +# meltOutput
  81 +
  82 +One score per row.
  83 +
  84 +* **file:** output/melt.cpp
  85 +* **inherits:** [MatrixOutput](../cpp_api.md#matrixoutput)
  86 +* **author:** Josh Klontz
  87 +* **properties:** None
  88 +
  89 +---
  90 +
  91 +# mtxOutput
  92 +
  93 +
  94 +
  95 +* **file:** output/mtx.cpp
  96 +* **inherits:** [Output](../cpp_api.md#output)
  97 +* **author:** Josh Klontz
  98 +* **properties:** None
  99 +
  100 +---
  101 +
  102 +# nullOutput
  103 +
  104 +Discards the scores.
  105 +
  106 +* **file:** output/null.cpp
  107 +* **inherits:** [Output](../cpp_api.md#output)
  108 +* **author:** Josh Klontz
  109 +* **properties:** None
  110 +
  111 +---
  112 +
  113 +# rankOutput
  114 +
  115 +Outputs highest ranked matches with scores.
  116 +
  117 +* **file:** output/rank.cpp
  118 +* **inherits:** [MatrixOutput](../cpp_api.md#matrixoutput)
  119 +* **author:** Scott Klum
  120 +* **properties:** None
  121 +
  122 +---
  123 +
  124 +# rrOutput
  125 +
  126 +Rank retrieval output.
  127 +
  128 +* **file:** output/rr.cpp
  129 +* **inherits:** [MatrixOutput](../cpp_api.md#matrixoutput)
  130 +* **authors:** Josh Klontz, Scott Klum
  131 +* **properties:** None
  132 +
  133 +---
  134 +
  135 +# tailOutput
  136 +
  137 +The highest scoring matches.
  138 +
  139 +* **file:** output/tail.cpp
  140 +* **inherits:** [Output](../cpp_api.md#output)
  141 +* **author:** Josh Klontz
  142 +* **properties:** None
  143 +
  144 +---
  145 +
  146 +# txtOutput
  147 +
  148 +Text file output.
  149 +
  150 +* **file:** output/txt.cpp
  151 +* **inherits:** [MatrixOutput](../cpp_api.md#matrixoutput)
  152 +* **author:** Josh Klontz
  153 +* **properties:** None
  154 +
docs/docs/docs/plugins/video.md 0 → 100644
  1 +---
  2 +
  3 +# AggregateFrames
  4 +
  5 +Passes along n sequential frames to the next transform.
  6 +
  7 +* **file:** video/aggregate.cpp
  8 +* **inherits:** [TimeVaryingTransform](../cpp_api.md#timevaryingtransform)
  9 +* **author:** Josh Klontz
  10 +* **properties:** None
  11 +
  12 +---
  13 +
  14 +# DropFrames
  15 +
  16 +Only use one frame every n frames.
  17 +
  18 +* **file:** video/drop.cpp
  19 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  20 +* **author:** Austin Blanton
  21 +* **properties:** None
  22 +
  23 +---
  24 +
  25 +# OpticalFlowTransform
  26 +
  27 +Gets a one-channel dense optical flow from two images
  28 +
  29 +* **file:** video/opticalflow.cpp
  30 +* **inherits:** [UntrainableMetaTransform](../cpp_api.md#untrainablemetatransform)
  31 +* **author:** Austin Blanton
  32 +* **properties:** None
  33 +
docs/docs/install.md
1 -# Build Instructions  
2 -  
3 A hacker's guide to building, editing, and running OpenBR. 1 A hacker's guide to building, editing, and running OpenBR.
4 2
5 --- 3 ---
6 4
7 -## Linux 5 +# Linux
8 6
9 1. Install GCC 4.7.3 7 1. Install GCC 4.7.3
10 8
@@ -83,7 +81,7 @@ A hacker&#39;s guide to building, editing, and running OpenBR. @@ -83,7 +81,7 @@ A hacker&#39;s guide to building, editing, and running OpenBR.
83 81
84 --- 82 ---
85 83
86 -## OSX 84 +# OSX
87 85
88 1. Download and install the latest "Xcode" and "Command Line Tools" from the <a href="https://developer.apple.com/downloads/index.action#">Apple Developer Downloads</a> page. 86 1. Download and install the latest "Xcode" and "Command Line Tools" from the <a href="https://developer.apple.com/downloads/index.action#">Apple Developer Downloads</a> page.
89 1. <a href="http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz">Download CMake 2.8.11.2</a> 87 1. <a href="http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz">Download CMake 2.8.11.2</a>
@@ -175,7 +173,7 @@ A hacker&#39;s guide to building, editing, and running OpenBR. @@ -175,7 +173,7 @@ A hacker&#39;s guide to building, editing, and running OpenBR.
175 173
176 --- 174 ---
177 175
178 -## Windows 176 +# Windows
179 177
180 1. <a href="http://www.microsoft.com/en-us/download/details.aspx?id=34673">Download Visual Studio 2012 Express Edition for Windows Desktop</a> and install. 178 1. <a href="http://www.microsoft.com/en-us/download/details.aspx?id=34673">Download Visual Studio 2012 Express Edition for Windows Desktop</a> and install.
181 1. Consider the free open source program <a href="http://wincdemu.sysprogs.org">WinCDEmu</a> if you need a program to mount ISO images. 179 1. Consider the free open source program <a href="http://wincdemu.sysprogs.org">WinCDEmu</a> if you need a program to mount ISO images.
@@ -246,7 +244,7 @@ A hacker&#39;s guide to building, editing, and running OpenBR. @@ -246,7 +244,7 @@ A hacker&#39;s guide to building, editing, and running OpenBR.
246 244
247 --- 245 ---
248 246
249 -## Raspian 247 +# Raspian
250 248
251 1. Install CMake 2.8.9 249 1. Install CMake 2.8.9
252 250
docs/docs/plugins.md deleted
1 -# Plugins  
2 -  
3 -A description of all of the plugins available in OpenBR, broken down by module. This section assumes knowledge of the [C++ Plugin API](technical.md#c++ plugin api) and the [plugin abstractions](abstractions.md).  
4 -  
5 -## Classification  
6 -  
7 ----  
8 -  
9 -#### AdaBoostTransform  
10 -  
11 -Wraps OpenCV's Ada Boost framework  
12 -  
13 -* **file:** classification/adaboost.cpp  
14 -* **inherits:** [Transform](abstractions.md#transform)  
15 -* **author:** Scott Klum  
16 -* **properties:** None  
17 -  
18 ----  
19 -  
20 -#### EBIFTransform  
21 -  
22 -Face Recognition Using Early Biologically Inspired Features  
23 -  
24 -* **file:** classification/ebif.cpp  
25 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
26 -* **author:** Josh Klontz  
27 -* **properties:** None  
28 -  
29 ----  
30 -  
31 -#### ForestTransform  
32 -  
33 -Wraps OpenCV's random trees framework  
34 -  
35 -* **file:** classification/forest.cpp  
36 -* **inherits:** [Transform](abstractions.md#transform)  
37 -* **author:** Scott Klum  
38 -* **properties:** None  
39 -  
40 ----  
41 -  
42 -#### ForestInductionTransform  
43 -  
44 -Wraps OpenCV's random trees framework to induce features  
45 -  
46 -* **file:** classification/forest.cpp  
47 -* **inherits:** [ForestTransform](abstractions.md#foresttransform)  
48 -* **author:** Scott Klum  
49 -* **properties:** None  
50 -  
51 ----  
52 -  
53 -#### IPC2013Initializer  
54 -  
55 -Initializes Intel Perceptual Computing SDK 2013  
56 -  
57 -* **file:** classification/ipc2013.cpp  
58 -* **inherits:** [Initializer](abstractions.md#initializer)  
59 -* **author:** Josh Klontz  
60 -* **properties:** None  
61 -  
62 ----  
63 -  
64 -#### IPC2013FaceRecognitionTransfrom  
65 -  
66 -Intel Perceptual Computing SDK 2013 Face Recognition  
67 -  
68 -* **file:** classification/ipc2013.cpp  
69 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
70 -* **author:** Josh Klontz  
71 -* **properties:** None  
72 -  
73 ----  
74 -  
75 -#### EigenInitializer  
76 -  
77 -Initialize Eigen  
78 -  
79 -* **file:** classification/lda.cpp  
80 -* **inherits:** [Initializer](abstractions.md#initializer)  
81 -* **author:** Scott Klum  
82 -* **properties:** None  
83 -  
84 ----  
85 -  
86 -#### PCATransform  
87 -  
88 -Projects input into learned Principal Component Analysis subspace.  
89 -  
90 -* **file:** classification/lda.cpp  
91 -* **inherits:** [Transform](abstractions.md#transform)  
92 -* **authors:** Brendan Klare, Josh Klontz  
93 -* **properties:** None  
94 -  
95 ----  
96 -  
97 -#### RowWisePCATransform  
98 -  
99 -PCA on each row.  
100 -  
101 -* **file:** classification/lda.cpp  
102 -* **inherits:** [PCATransform](abstractions.md#pcatransform)  
103 -* **author:** Josh Klontz  
104 -* **properties:** None  
105 -  
106 ----  
107 -  
108 -#### DFFSTransform  
109 -  
110 -Computes Distance From Feature Space (DFFS)  
111 -  
112 -* **file:** classification/lda.cpp  
113 -* **inherits:** [Transform](abstractions.md#transform)  
114 -* **author:** Josh Klontz  
115 -* **properties:** None  
116 -  
117 ----  
118 -  
119 -#### LDATransform  
120 -  
121 -Projects input into learned Linear Discriminant Analysis subspace.  
122 -  
123 -* **file:** classification/lda.cpp  
124 -* **inherits:** [Transform](abstractions.md#transform)  
125 -* **authors:** Brendan Klare, Josh Klontz  
126 -* **properties:** None  
127 -  
128 ----  
129 -  
130 -#### SparseLDATransform  
131 -  
132 -Projects input into learned Linear Discriminant Analysis subspace  
133 -  
134 -* **file:** classification/lda.cpp  
135 -* **inherits:** [Transform](abstractions.md#transform)  
136 -* **author:** Brendan Klare  
137 -* **properties:** None  
138 -  
139 ----  
140 -  
141 -#### MLPTransform  
142 -  
143 -Wraps OpenCV's multi-layer perceptron framework  
144 -  
145 -* **file:** classification/mlp.cpp  
146 -* **inherits:** [MetaTransform](abstractions.md#metatransform)  
147 -* **author:** Scott Klum  
148 -* **properties:** None  
149 -  
150 ----  
151 -  
152 -#### NT4Initializer  
153 -  
154 -Initialize Neurotech SDK 4  
155 -  
156 -* **file:** classification/nt4.cpp  
157 -* **inherits:** [Initializer](abstractions.md#initializer)  
158 -* **authors:** Josh Klontz, E. Taborsky  
159 -* **properties:** None  
160 -  
161 ----  
162 -  
163 -#### NT4DetectFace  
164 -  
165 -Neurotech face detection  
166 -  
167 -* **file:** classification/nt4.cpp  
168 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
169 -* **authors:** Josh Klontz, E. Taborsky  
170 -* **properties:** None  
171 -  
172 ----  
173 -  
174 -#### NT4EnrollFace  
175 -  
176 -Enroll face in Neurotech SDK 4  
177 -  
178 -* **file:** classification/nt4.cpp  
179 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
180 -* **author:** Josh Klontz  
181 -* **properties:** None  
182 -  
183 ----  
184 -  
185 -#### NT4EnrollIris  
186 -  
187 -Enroll iris in Neurotech SDK 4  
188 -  
189 -* **file:** classification/nt4.cpp  
190 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
191 -* **author:** E. Taborsky  
192 -* **properties:** None  
193 -  
194 ----  
195 -  
196 -#### NT4Compare  
197 -  
198 -Compare templates with Neurotech SDK 4  
199 -  
200 -* **file:** classification/nt4.cpp  
201 -* **inherits:** [Distance](abstractions.md#distance)  
202 -* **authors:** Josh Klontz, E. Taborsky  
203 -* **properties:** None  
204 -  
205 ----  
206 -  
207 -#### PP4Initializer  
208 -  
209 -Initialize PittPatt 4  
210 -  
211 -* **file:** classification/pp4.cpp  
212 -* **inherits:** [Initializer](abstractions.md#initializer)  
213 -* **author:** Josh Klontz  
214 -* **properties:** None  
215 -  
216 ----  
217 -  
218 -#### PP4EnrollTransform  
219 -  
220 -Enroll faces in PittPatt 4  
221 -  
222 -* **file:** classification/pp4.cpp  
223 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
224 -* **author:** Josh Klontz  
225 -* **properties:** None  
226 -  
227 ----  
228 -  
229 -#### PP5Initializer  
230 -  
231 -Initialize PP5  
232 -  
233 -* **file:** classification/pp5.cpp  
234 -* **inherits:** [Initializer](abstractions.md#initializer)  
235 -* **authors:** Josh Klontz, E. Taborsky  
236 -* **properties:** None  
237 -  
238 ----  
239 -  
240 -#### PP5EnrollTransform  
241 -  
242 -Enroll faces in PP5  
243 -  
244 -* **file:** classification/pp5.cpp  
245 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
246 -* **authors:** Josh Klontz, E. Taborsky  
247 -* **properties:** None  
248 -  
249 ----  
250 -  
251 -#### PP5CompareDistance  
252 -  
253 -Compare templates with PP5  
254 -  
255 -* **file:** classification/pp5.cpp  
256 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
257 -* **authors:** Josh Klontz, E. Taborsky  
258 -* **properties:** None  
259 -  
260 ----  
261 -  
262 -#### SVMTransform  
263 -  
264 -C. Burges. "A tutorial on support vector machines for pattern recognition,"  
265 -  
266 -* **file:** classification/svm.cpp  
267 -* **inherits:** [Transform](abstractions.md#transform)  
268 -* **author:** Josh Klontz  
269 -* **properties:** None  
270 -  
271 ----  
272 -  
273 -#### SVMDistance  
274 -  
275 -SVM Regression on template absolute differences.  
276 -  
277 -* **file:** classification/svm.cpp  
278 -* **inherits:** [Distance](abstractions.md#distance)  
279 -* **author:** Josh Klontz  
280 -* **properties:** None  
281 -  
282 ----  
283 -  
284 -#### TurkClassifierTransform  
285 -  
286 -Convenience class for training turk attribute regressors  
287 -  
288 -* **file:** classification/turk.cpp  
289 -* **inherits:** [Transform](abstractions.md#transform)  
290 -* **author:** Josh Klontz  
291 -* **properties:** None  
292 -  
293 -## Cluster  
294 -  
295 ----  
296 -  
297 -#### CollectNNTransform  
298 -  
299 -Collect nearest neighbors and append them to metadata.  
300 -  
301 -* **file:** cluster/collectnn.cpp  
302 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
303 -* **author:** Charles Otto  
304 -* **properties:** None  
305 -  
306 ----  
307 -  
308 -#### KMeansTransform  
309 -  
310 -Wraps OpenCV kmeans and flann.  
311 -  
312 -* **file:** cluster/kmeans.cpp  
313 -* **inherits:** [Transform](abstractions.md#transform)  
314 -* **author:** Josh Klontz  
315 -* **properties:** None  
316 -  
317 ----  
318 -  
319 -#### KNNTransform  
320 -  
321 -K nearest neighbors classifier.  
322 -  
323 -* **file:** cluster/knn.cpp  
324 -* **inherits:** [Transform](abstractions.md#transform)  
325 -* **author:** Josh Klontz  
326 -* **properties:** None  
327 -  
328 ----  
329 -  
330 -#### LogNNTransform  
331 -  
332 -Log nearest neighbors to specified file.  
333 -  
334 -* **file:** cluster/lognn.cpp  
335 -* **inherits:** [TimeVaryingTransform](abstractions.md#timevaryingtransform)  
336 -* **author:** Charles Otto  
337 -* **properties:** None  
338 -  
339 ----  
340 -  
341 -#### RandomCentroidsTransform  
342 -  
343 -Chooses k random points to be centroids.  
344 -  
345 -* **file:** cluster/randomcentroids.cpp  
346 -* **inherits:** [Transform](abstractions.md#transform)  
347 -* **author:** Austin Blanton  
348 -* **properties:** None  
349 -  
350 -## Core  
351 -  
352 ----  
353 -  
354 -#### AlgorithmsInitializer  
355 -  
356 -Initializes global abbreviations with implemented algorithms  
357 -  
358 -* **file:** core/algorithms.cpp  
359 -* **inherits:** [Initializer](abstractions.md#initializer)  
360 -* **author:** Josh Klontz  
361 -* **properties:** None  
362 -  
363 ----  
364 -  
365 -#### ProcrustesAlignTransform  
366 -  
367 -Improved procrustes alignment of points, to include a post processing scaling of points  
368 -  
369 -* **file:** core/align.cpp  
370 -* **inherits:** [Transform](abstractions.md#transform)  
371 -* **author:** Brendan Klare  
372 -* **properties:** None  
373 -  
374 ----  
375 -  
376 -#### TextureMapTransform  
377 -  
378 -Maps texture from one set of points to another. Assumes that points are rigidly transformed  
379 -  
380 -* **file:** core/align.cpp  
381 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
382 -* **authors:** Brendan Klare, Scott Klum  
383 -* **properties:** None  
384 -  
385 ----  
386 -  
387 -#### SynthesizePointsTransform  
388 -  
389 -Synthesize additional points via triangulation.  
390 -  
391 -* **file:** core/align.cpp  
392 -* **inherits:** [MetadataTransform](abstractions.md#metadatatransform)  
393 -* **author:** Josh Klontz  
394 -* **properties:** None  
395 -  
396 ----  
397 -  
398 -#### ProcrustesInitializer  
399 -  
400 -Initialize Procrustes croppings  
401 -  
402 -* **file:** core/align.cpp  
403 -* **inherits:** [Initializer](abstractions.md#initializer)  
404 -* **author:** Brendan Klare  
405 -* **properties:** None  
406 -  
407 ----  
408 -  
409 -#### AttributeAlgorithmsInitializer  
410 -  
411 -Initializes global abbreviations with implemented algorithms for attributes  
412 -  
413 -* **file:** core/attributealgorithms.cpp  
414 -* **inherits:** [Initializer](abstractions.md#initializer)  
415 -* **author:** Babatunde Ogunfemi  
416 -* **properties:** None  
417 -  
418 ----  
419 -  
420 -#### CacheTransform  
421 -  
422 -Caches br::Transform::project() results.  
423 -  
424 -* **file:** core/cache.cpp  
425 -* **inherits:** [MetaTransform](abstractions.md#metatransform)  
426 -* **author:** Josh Klontz  
427 -* **properties:** None  
428 -  
429 ----  
430 -  
431 -#### ContractTransform  
432 -  
433 -It's like the opposite of ExpandTransform, but not really  
434 -  
435 -* **file:** core/contract.cpp  
436 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
437 -* **author:** Charles Otto  
438 -* **properties:** None  
439 -  
440 ----  
441 -  
442 -#### CrossValidateTransform  
443 -  
444 -Cross validate a trainable transform.  
445 -  
446 -* **file:** core/crossvalidate.cpp  
447 -* **inherits:** [MetaTransform](abstractions.md#metatransform)  
448 -* **authors:** Josh Klontz, Scott Klum  
449 -* **properties:** None  
450 -  
451 ----  
452 -  
453 -#### DiscardTransform  
454 -  
455 -Removes all template's matrices.  
456 -  
457 -* **file:** core/discard.cpp  
458 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
459 -* **author:** Josh Klontz  
460 -* **properties:** None  
461 -  
462 ----  
463 -  
464 -#### ExpandTransform  
465 -  
466 -Performs an expansion step on input templatelists  
467 -  
468 -* **file:** core/expand.cpp  
469 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
470 -* **author:** Josh Klontz  
471 -* **properties:** None  
472 -  
473 ----  
474 -  
475 -#### FirstTransform  
476 -  
477 -Removes all but the first matrix from the template.  
478 -  
479 -* **file:** core/first.cpp  
480 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
481 -* **author:** Josh Klontz  
482 -* **properties:** None  
483 -  
484 ----  
485 -  
486 -#### ForkTransform  
487 -  
488 -Transforms in parallel.  
489 -  
490 -* **file:** core/fork.cpp  
491 -* **inherits:** [CompositeTransform](abstractions.md#compositetransform)  
492 -* **author:** Josh Klontz  
493 -* **properties:** None  
494 -  
495 ----  
496 -  
497 -#### FTETransform  
498 -  
499 -Flags images that failed to enroll based on the specified transform.  
500 -  
501 -* **file:** core/fte.cpp  
502 -* **inherits:** [Transform](abstractions.md#transform)  
503 -* **author:** Josh Klontz  
504 -* **properties:** None  
505 -  
506 ----  
507 -  
508 -#### GalleryCompareTransform  
509 -  
510 -Compare each template to a fixed gallery (with name = galleryName), using the specified distance.  
511 -  
512 -* **file:** core/gallerycompare.cpp  
513 -* **inherits:** [Transform](abstractions.md#transform)  
514 -* **author:** Charles Otto  
515 -* **properties:** None  
516 -  
517 ----  
518 -  
519 -#### IdentityTransform  
520 -  
521 -A no-op transform.  
522 -  
523 -* **file:** core/identity.cpp  
524 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
525 -* **author:** Josh Klontz  
526 -* **properties:** None  
527 -  
528 ----  
529 -  
530 -#### IndependentTransform  
531 -  
532 -Clones the transform so that it can be applied independently.  
533 -  
534 -* **file:** core/independent.cpp  
535 -* **inherits:** [MetaTransform](abstractions.md#metatransform)  
536 -* **author:** Josh Klontz  
537 -* **properties:** None  
538 -  
539 ----  
540 -  
541 -#### JNIInitializer  
542 -  
543 -Initialize JNI  
544 -  
545 -* **file:** core/jni.cpp  
546 -* **inherits:** [Initializer](abstractions.md#initializer)  
547 -* **author:** Jordan Cheney  
548 -* **properties:** None  
549 -  
550 ----  
551 -  
552 -#### LikelyTransform  
553 -  
554 -Generic interface to Likely JIT compiler  
555 -  
556 -* **file:** core/likely.cpp  
557 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
558 -* **author:** Josh Klontz  
559 -* **properties:** None  
560 -  
561 ----  
562 -  
563 -#### LoadStoreTransform  
564 -  
565 -Caches transform training.  
566 -  
567 -* **file:** core/loadstore.cpp  
568 -* **inherits:** [MetaTransform](abstractions.md#metatransform)  
569 -* **author:** Josh Klontz  
570 -* **properties:** None  
571 -  
572 ----  
573 -  
574 -#### PipeTransform  
575 -  
576 -Transforms in series.  
577 -  
578 -* **file:** core/pipe.cpp  
579 -* **inherits:** [CompositeTransform](abstractions.md#compositetransform)  
580 -* **author:** Josh Klontz  
581 -* **properties:** None  
582 -  
583 ----  
584 -  
585 -#### ProcessWrapperTransform  
586 -  
587 -Interface to a separate process  
588 -  
589 -* **file:** core/processwrapper.cpp  
590 -* **inherits:** [WrapperTransform](abstractions.md#wrappertransform)  
591 -* **author:** Charles Otto  
592 -* **properties:** None  
593 -  
594 ----  
595 -  
596 -#### Registrar  
597 -  
598 -Register custom objects with Qt meta object system.  
599 -  
600 -* **file:** core/registrar.cpp  
601 -* **inherits:** [Initializer](abstractions.md#initializer)  
602 -* **author:** Charles Otto  
603 -* **properties:** None  
604 -  
605 ----  
606 -  
607 -#### RestTransform  
608 -  
609 -Removes the first matrix from the template.  
610 -  
611 -* **file:** core/rest.cpp  
612 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
613 -* **author:** Josh Klontz  
614 -* **properties:** None  
615 -  
616 ----  
617 -  
618 -#### SchrodingerTransform  
619 -  
620 -Generates two templates, one of which is passed through a transform and the other  
621 -  
622 -* **file:** core/schrodinger.cpp  
623 -* **inherits:** [MetaTransform](abstractions.md#metatransform)  
624 -* **author:** Scott Klum  
625 -* **properties:** None  
626 -  
627 ----  
628 -  
629 -#### SingletonTransform  
630 -  
631 -A globally shared transform.  
632 -  
633 -* **file:** core/singleton.cpp  
634 -* **inherits:** [MetaTransform](abstractions.md#metatransform)  
635 -* **author:** Josh Klontz  
636 -* **properties:** None  
637 -  
638 -## Distance  
639 -  
640 ----  
641 -  
642 -#### AttributeDistance  
643 -  
644 -Attenuation function based distance from attributes  
645 -  
646 -* **file:** distance/attribute.cpp  
647 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
648 -* **author:** Scott Klum  
649 -* **properties:** None  
650 -  
651 ----  
652 -  
653 -#### BayesianQuantizationDistance  
654 -  
655 -Bayesian quantization distance  
656 -  
657 -* **file:** distance/bayesianquantization.cpp  
658 -* **inherits:** [Distance](abstractions.md#distance)  
659 -* **author:** Josh Klontz  
660 -* **properties:** None  
661 -  
662 ----  
663 -  
664 -#### ByteL1Distance  
665 -  
666 -Fast 8-bit L1 distance  
667 -  
668 -* **file:** distance/byteL1.cpp  
669 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
670 -* **author:** Josh Klontz  
671 -* **properties:** None  
672 -  
673 ----  
674 -  
675 -#### CrossValidateDistance  
676 -  
677 -Cross validate a distance metric.  
678 -  
679 -* **file:** distance/crossvalidate.cpp  
680 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
681 -* **author:** Josh Klontz  
682 -* **properties:** None  
683 -  
684 ----  
685 -  
686 -#### DefaultDistance  
687 -  
688 -DistDistance wrapper.  
689 -  
690 -* **file:** distance/default.cpp  
691 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
692 -* **author:** Josh Klontz  
693 -* **properties:** None  
694 -  
695 ----  
696 -  
697 -#### DistDistance  
698 -  
699 -Standard distance metrics  
700 -  
701 -* **file:** distance/dist.cpp  
702 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
703 -* **author:** Josh Klontz  
704 -* **properties:** None  
705 -  
706 ----  
707 -  
708 -#### FilterDistance  
709 -  
710 -Checks target metadata against filters.  
711 -  
712 -* **file:** distance/filter.cpp  
713 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
714 -* **author:** Josh Klontz  
715 -* **properties:** None  
716 -  
717 ----  
718 -  
719 -#### FuseDistance  
720 -  
721 -Fuses similarity scores across multiple matrices of compared templates  
722 -  
723 -* **file:** distance/fuse.cpp  
724 -* **inherits:** [Distance](abstractions.md#distance)  
725 -* **author:** Scott Klum  
726 -* **properties:** None  
727 -  
728 ----  
729 -  
730 -#### HalfByteL1Distance  
731 -  
732 -Fast 4-bit L1 distance  
733 -  
734 -* **file:** distance/halfbyteL1.cpp  
735 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
736 -* **author:** Josh Klontz  
737 -* **properties:** None  
738 -  
739 ----  
740 -  
741 -#### HeatMapDistance  
742 -  
743 -1v1 heat map comparison  
744 -  
745 -* **file:** distance/heatmap.cpp  
746 -* **inherits:** [Distance](abstractions.md#distance)  
747 -* **author:** Scott Klum  
748 -* **properties:** None  
749 -  
750 ----  
751 -  
752 -#### IdenticalDistance  
753 -  
754 -Returns  
755 -  
756 -* **file:** distance/identical.cpp  
757 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
758 -* **author:** Josh Klontz  
759 -* **properties:** None  
760 -  
761 ----  
762 -  
763 -#### KeyPointMatcherDistance  
764 -  
765 -Wraps OpenCV Key Point Matcher  
766 -  
767 -* **file:** distance/keypointmatcher.cpp  
768 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
769 -* **author:** Josh Klontz  
770 -* **properties:** None  
771 -  
772 ----  
773 -  
774 -#### L1Distance  
775 -  
776 -L1 distance computed using eigen.  
777 -  
778 -* **file:** distance/L1.cpp  
779 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
780 -* **author:** Josh Klontz  
781 -* **properties:** None  
782 -  
783 ----  
784 -  
785 -#### L2Distance  
786 -  
787 -L2 distance computed using eigen.  
788 -  
789 -* **file:** distance/L2.cpp  
790 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
791 -* **author:** Josh Klontz  
792 -* **properties:** None  
793 -  
794 ----  
795 -  
796 -#### MatchProbabilityDistance  
797 -  
798 -Match Probability  
799 -  
800 -* **file:** distance/matchprobability.cpp  
801 -* **inherits:** [Distance](abstractions.md#distance)  
802 -* **author:** Josh Klontz  
803 -* **properties:** None  
804 -  
805 ----  
806 -  
807 -#### MetadataDistance  
808 -  
809 -Checks target metadata against query metadata.  
810 -  
811 -* **file:** distance/metadata.cpp  
812 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
813 -* **author:** Scott Klum  
814 -* **properties:** None  
815 -  
816 ----  
817 -  
818 -#### NegativeLogPlusOneDistance  
819 -  
820 -Returns -log(distance(a,b)+1)  
821 -  
822 -* **file:** distance/neglogplusone.cpp  
823 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
824 -* **author:** Josh Klontz  
825 -* **properties:** None  
826 -  
827 ----  
828 -  
829 -#### OnlineDistance  
830 -  
831 -Online distance metric to attenuate match scores across multiple frames  
832 -  
833 -* **file:** distance/online.cpp  
834 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
835 -* **author:** Brendan klare  
836 -* **properties:** None  
837 -  
838 ----  
839 -  
840 -#### PipeDistance  
841 -  
842 -Distances in series.  
843 -  
844 -* **file:** distance/pipe.cpp  
845 -* **inherits:** [Distance](abstractions.md#distance)  
846 -* **author:** Josh Klontz  
847 -* **properties:** None  
848 -  
849 ----  
850 -  
851 -#### RejectDistance  
852 -  
853 -Sets distance to -FLOAT_MAX if a target template has/doesn't have a key.  
854 -  
855 -* **file:** distance/reject.cpp  
856 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
857 -* **author:** Scott Klum  
858 -* **properties:** None  
859 -  
860 ----  
861 -  
862 -#### SumDistance  
863 -  
864 -Sum match scores across multiple distances  
865 -  
866 -* **file:** distance/sum.cpp  
867 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
868 -* **author:** Scott Klum  
869 -* **properties:** None  
870 -  
871 ----  
872 -  
873 -#### TurkDistance  
874 -  
875 -Unmaps Turk HITs to be compared against query mats  
876 -  
877 -* **file:** distance/turk.cpp  
878 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
879 -* **author:** Scott Klum  
880 -* **properties:** None  
881 -  
882 ----  
883 -  
884 -#### UnitDistance  
885 -  
886 -Linear normalizes of a distance so the mean impostor score is 0 and the mean genuine score is 1.  
887 -  
888 -* **file:** distance/unit.cpp  
889 -* **inherits:** [Distance](abstractions.md#distance)  
890 -* **author:** Josh Klontz  
891 -* **properties:** None  
892 -  
893 -## Format  
894 -  
895 ----  
896 -  
897 -#### binaryFormat  
898 -  
899 -A simple binary matrix format.  
900 -  
901 -* **file:** format/binary.cpp  
902 -* **inherits:** [Format](abstractions.md#format)  
903 -* **author:** Josh Klontz  
904 -* **properties:** None  
905 -  
906 ----  
907 -  
908 -#### csvFormat  
909 -  
910 -Reads a comma separated value file.  
911 -  
912 -* **file:** format/csv.cpp  
913 -* **inherits:** [Format](abstractions.md#format)  
914 -* **author:** Josh Klontz  
915 -* **properties:** None  
916 -  
917 ----  
918 -  
919 -#### ebtsFormat  
920 -  
921 -Reads FBI EBTS transactions.  
922 -  
923 -* **file:** format/ebts.cpp  
924 -* **inherits:** [Format](abstractions.md#format)  
925 -* **author:** Scott Klum  
926 -* **properties:** None  
927 -  
928 ----  
929 -  
930 -#### lffsFormat  
931 -  
932 -Reads a NIST LFFS file.  
933 -  
934 -* **file:** format/lffs.cpp  
935 -* **inherits:** [Format](abstractions.md#format)  
936 -* **author:** Josh Klontz  
937 -* **properties:** None  
938 -  
939 ----  
940 -  
941 -#### lmatFormat  
942 -  
943 -Likely matrix format  
944 -  
945 -* **file:** format/lmat.cpp  
946 -* **inherits:** [Format](abstractions.md#format)  
947 -* **author:** Josh Klontz  
948 -* **properties:** None  
949 -  
950 ----  
951 -  
952 -#### matFormat  
953 -  
954 -MATLAB <tt>.mat</tt> format.  
955 -  
956 -* **file:** format/mat.cpp  
957 -* **inherits:** [Format](abstractions.md#format)  
958 -* **author:** Josh Klontz  
959 -* **properties:** None  
960 -  
961 ----  
962 -  
963 -#### mtxFormat  
964 -  
965 -Reads a NIST BEE similarity matrix.  
966 -  
967 -* **file:** format/mtx.cpp  
968 -* **inherits:** [Format](abstractions.md#format)  
969 -* **author:** Josh Klontz  
970 -* **properties:** None  
971 -  
972 ----  
973 -  
974 -#### maskFormat  
975 -  
976 -Reads a NIST BEE mask matrix.  
977 -  
978 -* **file:** format/mtx.cpp  
979 -* **inherits:** [mtxFormat](abstractions.md#mtxformat)  
980 -* **author:** Josh Klontz  
981 -* **properties:** None  
982 -  
983 ----  
984 -  
985 -#### nullFormat  
986 -  
987 -Returns an empty matrix.  
988 -  
989 -* **file:** format/null.cpp  
990 -* **inherits:** [Format](abstractions.md#format)  
991 -* **author:** Josh Klontz  
992 -* **properties:** None  
993 -  
994 ----  
995 -  
996 -#### postFormat  
997 -  
998 -Handle POST requests  
999 -  
1000 -* **file:** format/post.cpp  
1001 -* **inherits:** [Format](abstractions.md#format)  
1002 -* **author:** Josh Klontz  
1003 -* **properties:** None  
1004 -  
1005 ----  
1006 -  
1007 -#### rawFormat  
1008 -  
1009 -RAW format  
1010 -  
1011 -* **file:** format/raw.cpp  
1012 -* **inherits:** [Format](abstractions.md#format)  
1013 -* **author:** Josh Klontz  
1014 -* **properties:** None  
1015 -  
1016 ----  
1017 -  
1018 -#### scoresFormat  
1019 -  
1020 -Reads in scores or ground truth from a text table.  
1021 -  
1022 -* **file:** format/scores.cpp  
1023 -* **inherits:** [Format](abstractions.md#format)  
1024 -* **author:** Josh Klontz  
1025 -* **properties:** None  
1026 -  
1027 ----  
1028 -  
1029 -#### urlFormat  
1030 -  
1031 -Reads image files from the web.  
1032 -  
1033 -* **file:** format/url.cpp  
1034 -* **inherits:** [Format](abstractions.md#format)  
1035 -* **author:** Josh Klontz  
1036 -* **properties:** None  
1037 -  
1038 ----  
1039 -  
1040 -#### videoFormat  
1041 -  
1042 -Read all frames of a video using OpenCV  
1043 -  
1044 -* **file:** format/video.cpp  
1045 -* **inherits:** [Format](abstractions.md#format)  
1046 -* **author:** Charles Otto  
1047 -* **properties:** None  
1048 -  
1049 ----  
1050 -  
1051 -#### webcamFormat  
1052 -  
1053 -Retrieves an image from a webcam.  
1054 -  
1055 -* **file:** format/video.cpp  
1056 -* **inherits:** [Format](abstractions.md#format)  
1057 -* **author:** Josh Klontz  
1058 -* **properties:** None  
1059 -  
1060 ----  
1061 -  
1062 -#### DefaultFormat  
1063 -  
1064 -Reads image files.  
1065 -  
1066 -* **file:** format/video.cpp  
1067 -* **inherits:** [Format](abstractions.md#format)  
1068 -* **author:** Josh Klontz  
1069 -* **properties:** None  
1070 -  
1071 ----  
1072 -  
1073 -#### xmlFormat  
1074 -  
1075 -Decodes images from Base64 xml  
1076 -  
1077 -* **file:** format/xml.cpp  
1078 -* **inherits:** [Format](abstractions.md#format)  
1079 -* **authors:** Scott Klum, Josh Klontz  
1080 -* **properties:** None  
1081 -  
1082 -## Gallery  
1083 -  
1084 ----  
1085 -  
1086 -#### arffGallery  
1087 -  
1088 -Weka ARFF file format.  
1089 -  
1090 -* **file:** gallery/arff.cpp  
1091 -* **inherits:** [Gallery](abstractions.md#gallery)  
1092 -* **author:** Josh Klontz  
1093 -* **properties:** None  
1094 -  
1095 ----  
1096 -  
1097 -#### galGallery  
1098 -  
1099 -A binary gallery.  
1100 -  
1101 -* **file:** gallery/binary.cpp  
1102 -* **inherits:** [BinaryGallery](abstractions.md#binarygallery)  
1103 -* **author:** Josh Klontz  
1104 -* **properties:** None  
1105 -  
1106 ----  
1107 -  
1108 -#### utGallery  
1109 -  
1110 -A contiguous array of br_universal_template.  
1111 -  
1112 -* **file:** gallery/binary.cpp  
1113 -* **inherits:** [BinaryGallery](abstractions.md#binarygallery)  
1114 -* **author:** Josh Klontz  
1115 -* **properties:** None  
1116 -  
1117 ----  
1118 -  
1119 -#### urlGallery  
1120 -  
1121 -Newline-separated URLs.  
1122 -  
1123 -* **file:** gallery/binary.cpp  
1124 -* **inherits:** [BinaryGallery](abstractions.md#binarygallery)  
1125 -* **author:** Josh Klontz  
1126 -* **properties:** None  
1127 -  
1128 ----  
1129 -  
1130 -#### jsonGallery  
1131 -  
1132 -Newline-separated JSON objects.  
1133 -  
1134 -* **file:** gallery/binary.cpp  
1135 -* **inherits:** [BinaryGallery](abstractions.md#binarygallery)  
1136 -* **author:** Josh Klontz  
1137 -* **properties:** None  
1138 -  
1139 ----  
1140 -  
1141 -#### crawlGallery  
1142 -  
1143 -Crawl a root location for image files.  
1144 -  
1145 -* **file:** gallery/crawl.cpp  
1146 -* **inherits:** [Gallery](abstractions.md#gallery)  
1147 -* **author:** Josh Klontz  
1148 -* **properties:** None  
1149 -  
1150 ----  
1151 -  
1152 -#### csvGallery  
1153 -  
1154 -Treats each line as a file.  
1155 -  
1156 -* **file:** gallery/csv.cpp  
1157 -* **inherits:** [FileGallery](abstractions.md#filegallery)  
1158 -* **author:** Josh Klontz  
1159 -* **properties:** None  
1160 -  
1161 ----  
1162 -  
1163 -#### dbGallery  
1164 -  
1165 -Database input.  
1166 -  
1167 -* **file:** gallery/db.cpp  
1168 -* **inherits:** [Gallery](abstractions.md#gallery)  
1169 -* **author:** Josh Klontz  
1170 -* **properties:** None  
1171 -  
1172 ----  
1173 -  
1174 -#### DefaultGallery  
1175 -  
1176 -Treats the gallery as a br::Format.  
1177 -  
1178 -* **file:** gallery/default.cpp  
1179 -* **inherits:** [Gallery](abstractions.md#gallery)  
1180 -* **author:** Josh Klontz  
1181 -* **properties:** None  
1182 -  
1183 ----  
1184 -  
1185 -#### EmptyGallery  
1186 -  
1187 -Reads/writes templates to/from folders.  
1188 -  
1189 -* **file:** gallery/empty.cpp  
1190 -* **inherits:** [Gallery](abstractions.md#gallery)  
1191 -* **author:** Josh Klontz  
1192 -* **properties:** None  
1193 -  
1194 ----  
1195 -  
1196 -#### FDDBGallery  
1197 -  
1198 -Implements the FDDB detection format.  
1199 -  
1200 -* **file:** gallery/fddb.cpp  
1201 -* **inherits:** [Gallery](abstractions.md#gallery)  
1202 -* **author:** Josh Klontz  
1203 -* **properties:** None  
1204 -  
1205 ----  
1206 -  
1207 -#### flatGallery  
1208 -  
1209 -Treats each line as a call to File::flat()  
1210 -  
1211 -* **file:** gallery/flat.cpp  
1212 -* **inherits:** [FileGallery](abstractions.md#filegallery)  
1213 -* **author:** Josh Klontz  
1214 -* **properties:** None  
1215 -  
1216 ----  
1217 -  
1218 -#### googleGallery  
1219 -  
1220 -Input from a google image search.  
1221 -  
1222 -* **file:** gallery/google.cpp  
1223 -* **inherits:** [Gallery](abstractions.md#gallery)  
1224 -* **author:** Josh Klontz  
1225 -* **properties:** None  
1226 -  
1227 ----  
1228 -  
1229 -#### keyframesGallery  
1230 -  
1231 -Read key frames of a video with LibAV  
1232 -  
1233 -* **file:** gallery/keyframes.cpp  
1234 -* **inherits:** [Gallery](abstractions.md#gallery)  
1235 -* **author:** Ben Klein  
1236 -* **properties:** None  
1237 -  
1238 ----  
1239 -  
1240 -#### mp4Gallery  
1241 -  
1242 -Read key frames of a .mp4 video file with LibAV  
1243 -  
1244 -* **file:** gallery/keyframes.cpp  
1245 -* **inherits:** [keyframesGallery](abstractions.md#keyframesgallery)  
1246 -* **author:** Ben Klein  
1247 -* **properties:** None  
1248 -  
1249 ----  
1250 -  
1251 -#### landmarksGallery  
1252 -  
1253 -Text format for associating anonymous landmarks with images.  
1254 -  
1255 -* **file:** gallery/landmarks.cpp  
1256 -* **inherits:** [Gallery](abstractions.md#gallery)  
1257 -* **author:** Josh Klontz  
1258 -* **properties:** None  
1259 -  
1260 ----  
1261 -  
1262 -#### lmatGallery  
1263 -  
1264 -Likely matrix format  
1265 -  
1266 -* **file:** gallery/lmat.cpp  
1267 -* **inherits:** [Gallery](abstractions.md#gallery)  
1268 -* **author:** Josh Klontz  
1269 -* **properties:** None  
1270 -  
1271 ----  
1272 -  
1273 -#### matrixGallery  
1274 -  
1275 -Combine all templates into one large matrix and process it as a br::Format  
1276 -  
1277 -* **file:** gallery/matrix.cpp  
1278 -* **inherits:** [Gallery](abstractions.md#gallery)  
1279 -* **author:** Josh Klontz  
1280 -* **properties:** None  
1281 -  
1282 ----  
1283 -  
1284 -#### MemoryGalleries  
1285 -  
1286 -Initialization support for memGallery.  
1287 -  
1288 -* **file:** gallery/mem.cpp  
1289 -* **inherits:** [Initializer](abstractions.md#initializer)  
1290 -* **author:** Josh Klontz  
1291 -* **properties:** None  
1292 -  
1293 ----  
1294 -  
1295 -#### memGallery  
1296 -  
1297 -A gallery held in memory.  
1298 -  
1299 -* **file:** gallery/mem.cpp  
1300 -* **inherits:** [Gallery](abstractions.md#gallery)  
1301 -* **author:** Josh Klontz  
1302 -* **properties:** None  
1303 -  
1304 ----  
1305 -  
1306 -#### postGallery  
1307 -  
1308 -Handle POST requests  
1309 -  
1310 -* **file:** gallery/post.cpp  
1311 -* **inherits:** [Gallery](abstractions.md#gallery)  
1312 -* **author:** Josh Klontz  
1313 -* **properties:** None  
1314 -  
1315 ----  
1316 -  
1317 -#### statGallery  
1318 -  
1319 -Print template statistics.  
1320 -  
1321 -* **file:** gallery/stat.cpp  
1322 -* **inherits:** [Gallery](abstractions.md#gallery)  
1323 -* **author:** Josh Klontz  
1324 -* **properties:** None  
1325 -  
1326 ----  
1327 -  
1328 -#### templateGallery  
1329 -  
1330 -Treat the file as a single binary template.  
1331 -  
1332 -* **file:** gallery/template.cpp  
1333 -* **inherits:** [Gallery](abstractions.md#gallery)  
1334 -* **author:** Josh Klontz  
1335 -* **properties:** None  
1336 -  
1337 ----  
1338 -  
1339 -#### turkGallery  
1340 -  
1341 -For Amazon Mechanical Turk datasets  
1342 -  
1343 -* **file:** gallery/turk.cpp  
1344 -* **inherits:** [Gallery](abstractions.md#gallery)  
1345 -* **author:** Scott Klum  
1346 -* **properties:** None  
1347 -  
1348 ----  
1349 -  
1350 -#### txtGallery  
1351 -  
1352 -Treats each line as a file.  
1353 -  
1354 -* **file:** gallery/txt.cpp  
1355 -* **inherits:** [FileGallery](abstractions.md#filegallery)  
1356 -* **author:** Josh Klontz  
1357 -* **properties:** None  
1358 -  
1359 ----  
1360 -  
1361 -#### xmlGallery  
1362 -  
1363 -A  
1364 -  
1365 -* **file:** gallery/xml.cpp  
1366 -* **inherits:** [FileGallery](abstractions.md#filegallery)  
1367 -* **author:** Josh Klontz  
1368 -* **properties:** None  
1369 -  
1370 -## Gui  
1371 -  
1372 ----  
1373 -  
1374 -#### AdjacentOverlayTransform  
1375 -  
1376 -Load the image named in the specified property, draw it on the current matrix adjacent to the rect specified in the other property.  
1377 -  
1378 -* **file:** gui/adjacentoverlay.cpp  
1379 -* **inherits:** [Transform](abstractions.md#transform)  
1380 -* **author:** Charles Otto  
1381 -* **properties:** None  
1382 -  
1383 ----  
1384 -  
1385 -#### DrawTransform  
1386 -  
1387 -Renders metadata onto the image.  
1388 -  
1389 -* **file:** gui/draw.cpp  
1390 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1391 -* **author:** Josh Klontz  
1392 -* **properties:** None  
1393 -  
1394 ----  
1395 -  
1396 -#### DrawDelaunayTransform  
1397 -  
1398 -Creates a Delaunay triangulation based on a set of points  
1399 -  
1400 -* **file:** gui/drawdelaunay.cpp  
1401 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1402 -* **author:** Scott Klum  
1403 -* **properties:** None  
1404 -  
1405 ----  
1406 -  
1407 -#### DrawGridLinesTransform  
1408 -  
1409 -Draws a grid on the image  
1410 -  
1411 -* **file:** gui/drawgridlines.cpp  
1412 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1413 -* **author:** Josh Klontz  
1414 -* **properties:** None  
1415 -  
1416 ----  
1417 -  
1418 -#### DrawOpticalFlow  
1419 -  
1420 -Draw a line representing the direction and magnitude of optical flow at the specified points.  
1421 -  
1422 -* **file:** gui/drawopticalflow.cpp  
1423 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1424 -* **author:** Austin Blanton  
1425 -* **properties:** None  
1426 -  
1427 ----  
1428 -  
1429 -#### DrawPropertiesPointTransform  
1430 -  
1431 -Draw the values of a list of properties at the specified point on the image  
1432 -  
1433 -* **file:** gui/drawpropertiespoint.cpp  
1434 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1435 -* **author:** Charles Otto  
1436 -* **properties:** None  
1437 -  
1438 ----  
1439 -  
1440 -#### DrawPropertyPointTransform  
1441 -  
1442 -Draw the value of the specified property at the specified point on the image  
1443 -  
1444 -* **file:** gui/drawpropertypoint.cpp  
1445 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1446 -* **author:** Charles Otto  
1447 -* **properties:** None  
1448 -  
1449 ----  
1450 -  
1451 -#### DrawSegmentation  
1452 -  
1453 -Fill in the segmentations or draw a line between intersecting segments.  
1454 -  
1455 -* **file:** gui/drawsegmentation.cpp  
1456 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1457 -* **author:** Austin Blanton  
1458 -* **properties:** None  
1459 -  
1460 ----  
1461 -  
1462 -#### ShowTransform  
1463 -  
1464 -Displays templates in a GUI pop-up window using QT.  
1465 -  
1466 -* **file:** gui/show.cpp  
1467 -* **inherits:** [TimeVaryingTransform](abstractions.md#timevaryingtransform)  
1468 -* **author:** Charles Otto  
1469 -* **properties:** None  
1470 -  
1471 ----  
1472 -  
1473 -#### ShowTrainingTransform  
1474 -  
1475 -Show the training data  
1476 -  
1477 -* **file:** gui/show.cpp  
1478 -* **inherits:** [Transform](abstractions.md#transform)  
1479 -* **author:** Josh Klontz  
1480 -* **properties:** None  
1481 -  
1482 ----  
1483 -  
1484 -#### ManualTransform  
1485 -  
1486 -Manual selection of landmark locations  
1487 -  
1488 -* **file:** gui/show.cpp  
1489 -* **inherits:** [ShowTransform](abstractions.md#showtransform)  
1490 -* **author:** Scott Klum  
1491 -* **properties:** None  
1492 -  
1493 ----  
1494 -  
1495 -#### ManualRectsTransform  
1496 -  
1497 -Manual select rectangular regions on an image.  
1498 -  
1499 -* **file:** gui/show.cpp  
1500 -* **inherits:** [ShowTransform](abstractions.md#showtransform)  
1501 -* **author:** Charles Otto  
1502 -* **properties:** None  
1503 -  
1504 ----  
1505 -  
1506 -#### ElicitTransform  
1507 -  
1508 -Elicits metadata for templates in a pretty GUI  
1509 -  
1510 -* **file:** gui/show.cpp  
1511 -* **inherits:** [ShowTransform](abstractions.md#showtransform)  
1512 -* **author:** Scott Klum  
1513 -* **properties:** None  
1514 -  
1515 ----  
1516 -  
1517 -#### SurveyTransform  
1518 -  
1519 -Display an image, and asks a yes/no question about it  
1520 -  
1521 -* **file:** gui/show.cpp  
1522 -* **inherits:** [ShowTransform](abstractions.md#showtransform)  
1523 -* **author:** Charles Otto  
1524 -* **properties:** None  
1525 -  
1526 ----  
1527 -  
1528 -#### FPSLimit  
1529 -  
1530 -Limits the frequency of projects going through this transform to the input targetFPS  
1531 -  
1532 -* **file:** gui/show.cpp  
1533 -* **inherits:** [TimeVaryingTransform](abstractions.md#timevaryingtransform)  
1534 -* **author:** Charles Otto  
1535 -* **properties:** None  
1536 -  
1537 ----  
1538 -  
1539 -#### FPSCalc  
1540 -  
1541 -Calculates the average FPS of projects going through this transform, stores the result in AvgFPS  
1542 -  
1543 -* **file:** gui/show.cpp  
1544 -* **inherits:** [TimeVaryingTransform](abstractions.md#timevaryingtransform)  
1545 -* **author:** Charles Otto  
1546 -* **properties:** None  
1547 -  
1548 -## Imgproc  
1549 -  
1550 ----  
1551 -  
1552 -#### AbsTransform  
1553 -  
1554 -Computes the absolute value of each element.  
1555 -  
1556 -* **file:** imgproc/abs.cpp  
1557 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1558 -* **author:** Josh Klontz  
1559 -* **properties:** None  
1560 -  
1561 ----  
1562 -  
1563 -#### AbsDiffTransform  
1564 -  
1565 -Take the absolute difference of two matrices.  
1566 -  
1567 -* **file:** imgproc/absdiff.cpp  
1568 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
1569 -* **author:** Josh Klontz  
1570 -* **properties:** None  
1571 -  
1572 ----  
1573 -  
1574 -#### AdaptiveThresholdTransform  
1575 -  
1576 -Wraps OpenCV's adaptive thresholding.  
1577 -  
1578 -* **file:** imgproc/adaptivethreshold.cpp  
1579 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1580 -* **author:** Scott Klum  
1581 -* **properties:** None  
1582 -  
1583 ----  
1584 -  
1585 -#### AffineTransform  
1586 -  
1587 -Performs a two or three point registration.  
1588 -  
1589 -* **file:** imgproc/affine.cpp  
1590 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1591 -* **author:** Josh Klontz  
1592 -* **properties:** None  
1593 -  
1594 ----  
1595 -  
1596 -#### AndTransform  
1597 -  
1598 -Logical AND of two matrices.  
1599 -  
1600 -* **file:** imgproc/and.cpp  
1601 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
1602 -* **author:** Josh Klontz  
1603 -* **properties:** None  
1604 -  
1605 ----  
1606 -  
1607 -#### ApplyMaskTransform  
1608 -  
1609 -Applies a mask from the metadata.  
1610 -  
1611 -* **file:** imgproc/applymask.cpp  
1612 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1613 -* **author:** Austin Blanton  
1614 -* **properties:** None  
1615 -  
1616 ----  
1617 -  
1618 -#### BayesianQuantizationTransform  
1619 -  
1620 -Quantize into a space where L1 distance approximates log-likelihood.  
1621 -  
1622 -* **file:** imgproc/bayesianquantization.cpp  
1623 -* **inherits:** [Transform](abstractions.md#transform)  
1624 -* **author:** Josh Klontz  
1625 -* **properties:** None  
1626 -  
1627 ----  
1628 -  
1629 -#### BinarizeTransform  
1630 -  
1631 -Approximate floats as signed bit.  
1632 -  
1633 -* **file:** imgproc/binarize.cpp  
1634 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1635 -* **author:** Josh Klontz  
1636 -* **properties:** None  
1637 -  
1638 ----  
1639 -  
1640 -#### BlendTransform  
1641 -  
1642 -Alpha-blend two matrices  
1643 -  
1644 -* **file:** imgproc/blend.cpp  
1645 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
1646 -* **author:** Josh Klontz  
1647 -* **properties:** None  
1648 -  
1649 ----  
1650 -  
1651 -#### BlurTransform  
1652 -  
1653 -Gaussian blur  
1654 -  
1655 -* **file:** imgproc/blur.cpp  
1656 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1657 -* **author:** Josh Klontz  
1658 -* **properties:** None  
1659 -  
1660 ----  
1661 -  
1662 -#### ByRowTransform  
1663 -  
1664 -Turns each row into its own matrix.  
1665 -  
1666 -* **file:** imgproc/byrow.cpp  
1667 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1668 -* **author:** Josh Klontz  
1669 -* **properties:** None  
1670 -  
1671 ----  
1672 -  
1673 -#### CannyTransform  
1674 -  
1675 -Warpper to OpenCV Canny edge detector  
1676 -  
1677 -* **file:** imgproc/canny.cpp  
1678 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1679 -* **author:** Scott Klum  
1680 -* **properties:** None  
1681 -  
1682 ----  
1683 -  
1684 -#### CatTransform  
1685 -  
1686 -Concatenates all input matrices into a single matrix.  
1687 -  
1688 -* **file:** imgproc/cat.cpp  
1689 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
1690 -* **author:** Josh Klontz  
1691 -* **properties:** None  
1692 -  
1693 ----  
1694 -  
1695 -#### CatColsTransform  
1696 -  
1697 -Concatenates all input matrices by column into a single matrix.  
1698 -  
1699 -* **file:** imgproc/catcols.cpp  
1700 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
1701 -* **author:** Austin Blanton  
1702 -* **properties:** None  
1703 -  
1704 ----  
1705 -  
1706 -#### CatRowsTransform  
1707 -  
1708 -Concatenates all input matrices by row into a single matrix.  
1709 -  
1710 -* **file:** imgproc/catrows.cpp  
1711 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
1712 -* **author:** Josh Klontz  
1713 -* **properties:** None  
1714 -  
1715 ----  
1716 -  
1717 -#### CenterTransform  
1718 -  
1719 -Normalize each dimension based on training data.  
1720 -  
1721 -* **file:** imgproc/center.cpp  
1722 -* **inherits:** [Transform](abstractions.md#transform)  
1723 -* **author:** Josh Klontz  
1724 -* **properties:** None  
1725 -  
1726 ----  
1727 -  
1728 -#### ContrastEqTransform  
1729 -  
1730 -Xiaoyang Tan; Triggs, B.;  
1731 -  
1732 -* **file:** imgproc/contrasteq.cpp  
1733 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1734 -* **author:** Josh Klontz  
1735 -* **properties:** None  
1736 -  
1737 ----  
1738 -  
1739 -#### CropTransform  
1740 -  
1741 -Crops about the specified region of interest.  
1742 -  
1743 -* **file:** imgproc/crop.cpp  
1744 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1745 -* **author:** Josh Klontz  
1746 -* **properties:** None  
1747 -  
1748 ----  
1749 -  
1750 -#### CropBlackTransform  
1751 -  
1752 -Crop out black borders  
1753 -  
1754 -* **file:** imgproc/cropblack.cpp  
1755 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1756 -* **author:** Josh Klontz  
1757 -* **properties:** None  
1758 -  
1759 ----  
1760 -  
1761 -#### CropFromMaskTransform  
1762 -  
1763 -Crops image based on mask metadata  
1764 -  
1765 -* **file:** imgproc/cropfrommask.cpp  
1766 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1767 -* **author:** Brendan Klare  
1768 -* **properties:** None  
1769 -  
1770 ----  
1771 -  
1772 -#### CropSquareTransform  
1773 -  
1774 -Trim the image so the width and the height are the same size.  
1775 -  
1776 -* **file:** imgproc/cropsquare.cpp  
1777 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1778 -* **author:** Josh Klontz  
1779 -* **properties:** None  
1780 -  
1781 ----  
1782 -  
1783 -#### CryptographicHashTransform  
1784 -  
1785 -Wraps QCryptographicHash  
1786 -  
1787 -* **file:** imgproc/cryptographichash.cpp  
1788 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1789 -* **author:** Josh Klontz  
1790 -* **properties:** None  
1791 -  
1792 ----  
1793 -  
1794 -#### CvtTransform  
1795 -  
1796 -Colorspace conversion.  
1797 -  
1798 -* **file:** imgproc/cvt.cpp  
1799 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1800 -* **author:** Josh Klontz  
1801 -* **properties:** None  
1802 -  
1803 ----  
1804 -  
1805 -#### CvtFloatTransform  
1806 -  
1807 -Convert to floating point format.  
1808 -  
1809 -* **file:** imgproc/cvtfloat.cpp  
1810 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1811 -* **author:** Josh Klontz  
1812 -* **properties:** None  
1813 -  
1814 ----  
1815 -  
1816 -#### CvtUCharTransform  
1817 -  
1818 -Convert to uchar format  
1819 -  
1820 -* **file:** imgproc/cvtuchar.cpp  
1821 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1822 -* **author:** Josh Klontz  
1823 -* **properties:** None  
1824 -  
1825 ----  
1826 -  
1827 -#### NLMeansDenoisingTransform  
1828 -  
1829 -Wraps OpenCV Non-Local Means Denoising  
1830 -  
1831 -* **file:** imgproc/denoising.cpp  
1832 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1833 -* **author:** Josh Klontz  
1834 -* **properties:** None  
1835 -  
1836 ----  
1837 -  
1838 -#### DiscardAlphaTransform  
1839 -  
1840 -Drop the alpha channel (if exists).  
1841 -  
1842 -* **file:** imgproc/discardalpha.cpp  
1843 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1844 -* **author:** Austin Blanton  
1845 -* **properties:** None  
1846 -  
1847 ----  
1848 -  
1849 -#### DivTransform  
1850 -  
1851 -Enforce a multiple of  
1852 -  
1853 -* **file:** imgproc/div.cpp  
1854 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1855 -* **author:** Josh Klontz  
1856 -* **properties:** None  
1857 -  
1858 ----  
1859 -  
1860 -#### DoGTransform  
1861 -  
1862 -Difference of gaussians  
1863 -  
1864 -* **file:** imgproc/dog.cpp  
1865 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1866 -* **author:** Josh Klontz  
1867 -* **properties:** None  
1868 -  
1869 ----  
1870 -  
1871 -#### DownsampleTransform  
1872 -  
1873 -Downsample the rows and columns of a matrix.  
1874 -  
1875 -* **file:** imgproc/downsample.cpp  
1876 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1877 -* **author:** Lacey Best-Rowden  
1878 -* **properties:** None  
1879 -  
1880 ----  
1881 -  
1882 -#### DupTransform  
1883 -  
1884 -Duplicates the template data.  
1885 -  
1886 -* **file:** imgproc/dup.cpp  
1887 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
1888 -* **author:** Josh Klontz  
1889 -* **properties:** None  
1890 -  
1891 ----  
1892 -  
1893 -#### EnsureChannelsTransform  
1894 -  
1895 -Enforce the matrix has a certain number of channels by adding or removing channels.  
1896 -  
1897 -* **file:** imgproc/ensurechannels.cpp  
1898 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1899 -* **author:** Josh Klontz  
1900 -* **properties:** None  
1901 -  
1902 ----  
1903 -  
1904 -#### EqualizeHistTransform  
1905 -  
1906 -Histogram equalization  
1907 -  
1908 -* **file:** imgproc/equalizehist.cpp  
1909 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1910 -* **author:** Josh Klontz  
1911 -* **properties:** None  
1912 -  
1913 ----  
1914 -  
1915 -#### FlipTransform  
1916 -  
1917 -Flips the image about an axis.  
1918 -  
1919 -* **file:** imgproc/flip.cpp  
1920 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1921 -* **author:** Josh Klontz  
1922 -* **properties:** None  
1923 -  
1924 ----  
1925 -  
1926 -#### FloodTransform  
1927 -  
1928 -Fill black pixels with the specified color.  
1929 -  
1930 -* **file:** imgproc/flood.cpp  
1931 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1932 -* **author:** Josh Klontz  
1933 -* **properties:** None  
1934 -  
1935 ----  
1936 -  
1937 -#### GaborTransform  
1938 -  
1939 -http://en.wikipedia.org/wiki/Gabor_filter  
1940 -  
1941 -* **file:** imgproc/gabor.cpp  
1942 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1943 -* **author:** Josh Klontz  
1944 -* **properties:** None  
1945 -  
1946 ----  
1947 -  
1948 -#### GaborJetTransform  
1949 -  
1950 -A vector of gabor wavelets applied at a point.  
1951 -  
1952 -* **file:** imgproc/gabor.cpp  
1953 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1954 -* **author:** Josh Klontz  
1955 -* **properties:** None  
1956 -  
1957 ----  
1958 -  
1959 -#### GammaTransform  
1960 -  
1961 -Gamma correction  
1962 -  
1963 -* **file:** imgproc/gamma.cpp  
1964 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1965 -* **author:** Josh Klontz  
1966 -* **properties:** None  
1967 -  
1968 ----  
1969 -  
1970 -#### GradientTransform  
1971 -  
1972 -Computes magnitude and/or angle of image.  
1973 -  
1974 -* **file:** imgproc/gradient.cpp  
1975 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1976 -* **author:** Josh Klontz  
1977 -* **properties:** None  
1978 -  
1979 ----  
1980 -  
1981 -#### GradientMaskTransform  
1982 -  
1983 -Masks image according to pixel change.  
1984 -  
1985 -* **file:** imgproc/gradientmask.cpp  
1986 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
1987 -* **author:** Josh Klontz  
1988 -* **properties:** None  
1989 -  
1990 ----  
1991 -  
1992 -#### GroupTransform  
1993 -  
1994 -Group all input matrices into a single matrix.  
1995 -  
1996 -* **file:** imgproc/group.cpp  
1997 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
1998 -* **author:** Josh Klontz  
1999 -* **properties:** None  
2000 -  
2001 ----  
2002 -  
2003 -#### HistTransform  
2004 -  
2005 -Histograms the matrix  
2006 -  
2007 -* **file:** imgproc/hist.cpp  
2008 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2009 -* **author:** Josh Klontz  
2010 -* **properties:** None  
2011 -  
2012 ----  
2013 -  
2014 -#### HistBinTransform  
2015 -  
2016 -Quantizes the values into bins.  
2017 -  
2018 -* **file:** imgproc/histbin.cpp  
2019 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2020 -* **author:** Josh Klontz  
2021 -* **properties:** None  
2022 -  
2023 ----  
2024 -  
2025 -#### HistEqQuantizationTransform  
2026 -  
2027 -Approximate floats as uchar with different scalings for each dimension.  
2028 -  
2029 -* **file:** imgproc/histeqquantization.cpp  
2030 -* **inherits:** [Transform](abstractions.md#transform)  
2031 -* **author:** Josh Klontz  
2032 -* **properties:** None  
2033 -  
2034 ----  
2035 -  
2036 -#### HoGDescriptorTransform  
2037 -  
2038 -OpenCV HOGDescriptor wrapper  
2039 -  
2040 -* **file:** imgproc/hog.cpp  
2041 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2042 -* **author:** Austin Blanton  
2043 -* **properties:** None  
2044 -  
2045 ----  
2046 -  
2047 -#### InpaintTransform  
2048 -  
2049 -Wraps OpenCV inpainting  
2050 -  
2051 -* **file:** imgproc/inpaint.cpp  
2052 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2053 -* **author:** Josh Klontz  
2054 -* **properties:** None  
2055 -  
2056 ----  
2057 -  
2058 -#### IntegralTransform  
2059 -  
2060 -Computes integral image.  
2061 -  
2062 -* **file:** imgproc/integral.cpp  
2063 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2064 -* **author:** Josh Klontz  
2065 -* **properties:** None  
2066 -  
2067 ----  
2068 -  
2069 -#### IntegralHistTransform  
2070 -  
2071 -An integral histogram  
2072 -  
2073 -* **file:** imgproc/integralhist.cpp  
2074 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2075 -* **author:** Josh Klontz  
2076 -* **properties:** None  
2077 -  
2078 ----  
2079 -  
2080 -#### IntegralSamplerTransform  
2081 -  
2082 -Sliding window feature extraction from a multi-channel integral image.  
2083 -  
2084 -* **file:** imgproc/integralsampler.cpp  
2085 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2086 -* **author:** Josh Klontz  
2087 -* **properties:** None  
2088 -  
2089 ----  
2090 -  
2091 -#### KernelHashTransform  
2092 -  
2093 -Kernel hash  
2094 -  
2095 -* **file:** imgproc/kernelhash.cpp  
2096 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2097 -* **author:** Josh Klontz  
2098 -* **properties:** None  
2099 -  
2100 ----  
2101 -  
2102 -#### KeyPointDescriptorTransform  
2103 -  
2104 -Wraps OpenCV Key Point Descriptor  
2105 -  
2106 -* **file:** imgproc/keypointdescriptor.cpp  
2107 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2108 -* **author:** Josh Klontz  
2109 -* **properties:** None  
2110 -  
2111 ----  
2112 -  
2113 -#### LargestConvexAreaTransform  
2114 -  
2115 -Set the template's label to the area of the largest convex hull.  
2116 -  
2117 -* **file:** imgproc/largestconvexarea.cpp  
2118 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2119 -* **author:** Josh Klontz  
2120 -* **properties:** None  
2121 -  
2122 ----  
2123 -  
2124 -#### LBPTransform  
2125 -  
2126 -Ahonen, T.; Hadid, A.; Pietikainen, M.;  
2127 -  
2128 -* **file:** imgproc/lbp.cpp  
2129 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2130 -* **author:** Josh Klontz  
2131 -* **properties:** None  
2132 -  
2133 ----  
2134 -  
2135 -#### LimitSizeTransform  
2136 -  
2137 -Limit the size of the template  
2138 -  
2139 -* **file:** imgproc/limitsize.cpp  
2140 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2141 -* **author:** Josh Klontz  
2142 -* **properties:** None  
2143 -  
2144 ----  
2145 -  
2146 -#### LTPTransform  
2147 -  
2148 -Tan, Xiaoyang, and Bill Triggs. "Enhanced local texture feature sets for face recognition under difficult lighting conditions." Analysis and Modeling of Faces and Gestures. Springer Berlin Heidelberg, 2007. 168-182.  
2149 -  
2150 -* **file:** imgproc/ltp.cpp  
2151 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2152 -* **authors:** Brendan Klare, Josh Klontz  
2153 -* **properties:** None  
2154 -  
2155 ----  
2156 -  
2157 -#### MAddTransform  
2158 -  
2159 -dst = a*src+b  
2160 -  
2161 -* **file:** imgproc/madd.cpp  
2162 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2163 -* **author:** Josh Klontz  
2164 -* **properties:** None  
2165 -  
2166 ----  
2167 -  
2168 -#### MaskTransform  
2169 -  
2170 -Applies an eliptical mask  
2171 -  
2172 -* **file:** imgproc/mask.cpp  
2173 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2174 -* **author:** Josh Klontz  
2175 -* **properties:** None  
2176 -  
2177 ----  
2178 -  
2179 -#### MatStatsTransform  
2180 -  
2181 -Statistics  
2182 -  
2183 -* **file:** imgproc/matstats.cpp  
2184 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2185 -* **author:** Josh Klontz  
2186 -* **properties:** None  
2187 -  
2188 ----  
2189 -  
2190 -#### MeanTransform  
2191 -  
2192 -Computes the mean of a set of templates.  
2193 -  
2194 -* **file:** imgproc/mean.cpp  
2195 -* **inherits:** [Transform](abstractions.md#transform)  
2196 -* **author:** Scott Klum  
2197 -* **properties:** None  
2198 -  
2199 ----  
2200 -  
2201 -#### MeanFillTransform  
2202 -  
2203 -Fill 0 pixels with the mean of non-0 pixels.  
2204 -  
2205 -* **file:** imgproc/meanfill.cpp  
2206 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2207 -* **author:** Josh Klontz  
2208 -* **properties:** None  
2209 -  
2210 ----  
2211 -  
2212 -#### MergeTransform  
2213 -  
2214 -Wraps OpenCV merge  
2215 -  
2216 -* **file:** imgproc/merge.cpp  
2217 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
2218 -* **author:** Josh Klontz  
2219 -* **properties:** None  
2220 -  
2221 ----  
2222 -  
2223 -#### MorphTransform  
2224 -  
2225 -Morphological operator  
2226 -  
2227 -* **file:** imgproc/morph.cpp  
2228 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2229 -* **author:** Josh Klontz  
2230 -* **properties:** None  
2231 -  
2232 ----  
2233 -  
2234 -#### BuildScalesTransform  
2235 -  
2236 -Document me  
2237 -  
2238 -* **file:** imgproc/multiscale.cpp  
2239 -* **inherits:** [Transform](abstractions.md#transform)  
2240 -* **author:** Austin Blanton  
2241 -* **properties:** None  
2242 -  
2243 ----  
2244 -  
2245 -#### NormalizeTransform  
2246 -  
2247 -Normalize matrix to unit length  
2248 -  
2249 -* **file:** imgproc/normalize.cpp  
2250 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2251 -* **author:** Josh Klontz  
2252 -* **properties:**  
2253 -  
2254 - * **NormType**- Values are NORM_INF, NORM_L1, NORM_L2, NORM_MINMAX  
2255 - * **ByRow**- If true normalize each row independently otherwise normalize the entire matrix.  
2256 - * **alpha**- Lower bound if using NORM_MINMAX. Value to normalize to otherwise.  
2257 - * **beta**- Upper bound if using NORM_MINMAX. Not used otherwise.  
2258 - * **squareRoot**- If true compute the signed square root of the output after normalization.  
2259 -  
2260 -  
2261 ----  
2262 -  
2263 -#### OrigLinearRegressionTransform  
2264 -  
2265 -Prediction with magic numbers from jmp; must get input as blue;green;red  
2266 -  
2267 -* **file:** imgproc/origlinearregression.cpp  
2268 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
2269 -* **author:** E. Taborsky  
2270 -* **properties:** None  
2271 -  
2272 ----  
2273 -  
2274 -#### PackTransform  
2275 -  
2276 -Compress two uchar into one uchar.  
2277 -  
2278 -* **file:** imgproc/pack.cpp  
2279 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2280 -* **author:** Josh Klontz  
2281 -* **properties:** None  
2282 -  
2283 ----  
2284 -  
2285 -#### PowTransform  
2286 -  
2287 -Raise each element to the specified power.  
2288 -  
2289 -* **file:** imgproc/pow.cpp  
2290 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2291 -* **author:** Josh Klontz  
2292 -* **properties:** None  
2293 -  
2294 ----  
2295 -  
2296 -#### ProductQuantizationDistance  
2297 -  
2298 -Distance in a product quantized space  
2299 -  
2300 -* **file:** imgproc/productquantization.cpp  
2301 -* **inherits:** [UntrainableDistance](abstractions.md#untrainabledistance)  
2302 -* **author:** Josh Klontz  
2303 -* **properties:** None  
2304 -  
2305 ----  
2306 -  
2307 -#### ProductQuantizationTransform  
2308 -  
2309 -Product quantization  
2310 -  
2311 -* **file:** imgproc/productquantization.cpp  
2312 -* **inherits:** [Transform](abstractions.md#transform)  
2313 -* **author:** Josh Klontz  
2314 -* **properties:** None  
2315 -  
2316 ----  
2317 -  
2318 -#### QuantizeTransform  
2319 -  
2320 -Approximate floats as uchar.  
2321 -  
2322 -* **file:** imgproc/quantize.cpp  
2323 -* **inherits:** [Transform](abstractions.md#transform)  
2324 -* **author:** Josh Klontz  
2325 -* **properties:** None  
2326 -  
2327 ----  
2328 -  
2329 -#### RankTransform  
2330 -  
2331 -Converts each element to its rank-ordered value.  
2332 -  
2333 -* **file:** imgproc/rank.cpp  
2334 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2335 -* **author:** Josh Klontz  
2336 -* **properties:** None  
2337 -  
2338 ----  
2339 -  
2340 -#### RectRegionsTransform  
2341 -  
2342 -Subdivide matrix into rectangular subregions.  
2343 -  
2344 -* **file:** imgproc/rectregions.cpp  
2345 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2346 -* **author:** Josh Klontz  
2347 -* **properties:** None  
2348 -  
2349 ----  
2350 -  
2351 -#### RecursiveIntegralSamplerTransform  
2352 -  
2353 -Construct template in a recursive decent manner.  
2354 -  
2355 -* **file:** imgproc/recursiveintegralsampler.cpp  
2356 -* **inherits:** [Transform](abstractions.md#transform)  
2357 -* **author:** Josh Klontz  
2358 -* **properties:** None  
2359 -  
2360 ----  
2361 -  
2362 -#### RedLinearRegressionTransform  
2363 -  
2364 -Prediction using only the red wavelength; magic numbers from jmp  
2365 -  
2366 -* **file:** imgproc/redlinearregression.cpp  
2367 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2368 -* **author:** E. Taborsky  
2369 -* **properties:** None  
2370 -  
2371 ----  
2372 -  
2373 -#### ReshapeTransform  
2374 -  
2375 -Reshape the each matrix to the specified number of rows.  
2376 -  
2377 -* **file:** imgproc/reshape.cpp  
2378 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2379 -* **author:** Josh Klontz  
2380 -* **properties:** None  
2381 -  
2382 ----  
2383 -  
2384 -#### ResizeTransform  
2385 -  
2386 -Resize the template  
2387 -  
2388 -* **file:** imgproc/resize.cpp  
2389 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2390 -* **author:** Josh Klontz  
2391 -* **properties:** None  
2392 -  
2393 ----  
2394 -  
2395 -#### RevertAffineTransform  
2396 -  
2397 -Designed for use after eye detection + Stasm, this will  
2398 -  
2399 -* **file:** imgproc/revertaffine.cpp  
2400 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2401 -* **author:** Brendan Klare  
2402 -* **properties:** None  
2403 -  
2404 ----  
2405 -  
2406 -#### RGTransform  
2407 -  
2408 -Normalized RG color space.  
2409 -  
2410 -* **file:** imgproc/rg.cpp  
2411 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2412 -* **author:** Josh Klontz  
2413 -* **properties:** None  
2414 -  
2415 ----  
2416 -  
2417 -#### RndPointTransform  
2418 -  
2419 -Generates a random landmark.  
2420 -  
2421 -* **file:** imgproc/rndpoint.cpp  
2422 -* **inherits:** [Transform](abstractions.md#transform)  
2423 -* **author:** Josh Klontz  
2424 -* **properties:** None  
2425 -  
2426 ----  
2427 -  
2428 -#### RndRegionTransform  
2429 -  
2430 -Selects a random region.  
2431 -  
2432 -* **file:** imgproc/rndregion.cpp  
2433 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2434 -* **author:** Josh Klontz  
2435 -* **properties:** None  
2436 -  
2437 ----  
2438 -  
2439 -#### RndRotateTransform  
2440 -  
2441 -Randomly rotates an image in a specified range.  
2442 -  
2443 -* **file:** imgproc/rndrotate.cpp  
2444 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2445 -* **author:** Scott Klum  
2446 -* **properties:** None  
2447 -  
2448 ----  
2449 -  
2450 -#### RndSubspaceTransform  
2451 -  
2452 -Generates a random subspace.  
2453 -  
2454 -* **file:** imgproc/rndsubspace.cpp  
2455 -* **inherits:** [Transform](abstractions.md#transform)  
2456 -* **author:** Josh Klontz  
2457 -* **properties:** None  
2458 -  
2459 ----  
2460 -  
2461 -#### ROITransform  
2462 -  
2463 -Crops the rectangular regions of interest.  
2464 -  
2465 -* **file:** imgproc/roi.cpp  
2466 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2467 -* **author:** Josh Klontz  
2468 -* **properties:** None  
2469 -  
2470 ----  
2471 -  
2472 -#### ROIFromPtsTransform  
2473 -  
2474 -Crops the rectangular regions of interest from given points and sizes.  
2475 -  
2476 -* **file:** imgproc/roifrompoints.cpp  
2477 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2478 -* **author:** Austin Blanton  
2479 -* **properties:** None  
2480 -  
2481 ----  
2482 -  
2483 -#### RootNormTransform  
2484 -  
2485 -dst=sqrt(norm_L1(src)) proposed as RootSIFT in  
2486 -  
2487 -* **file:** imgproc/rootnorm.cpp  
2488 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2489 -* **author:** Josh Klontz  
2490 -* **properties:** None  
2491 -  
2492 ----  
2493 -  
2494 -#### RowWiseMeanCenterTransform  
2495 -  
2496 -Remove the row-wise training set average.  
2497 -  
2498 -* **file:** imgproc/rowwisemeancenter.cpp  
2499 -* **inherits:** [Transform](abstractions.md#transform)  
2500 -* **author:** Josh Klontz  
2501 -* **properties:** None  
2502 -  
2503 ----  
2504 -  
2505 -#### SampleFromMaskTransform  
2506 -  
2507 -Samples pixels from a mask.  
2508 -  
2509 -* **file:** imgproc/samplefrommask.cpp  
2510 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2511 -* **author:** Scott Klum  
2512 -* **properties:** None  
2513 -  
2514 ----  
2515 -  
2516 -#### ScaleTransform  
2517 -  
2518 -Scales using the given factor  
2519 -  
2520 -* **file:** imgproc/scale.cpp  
2521 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2522 -* **author:** Scott Klum  
2523 -* **properties:** None  
2524 -  
2525 ----  
2526 -  
2527 -#### SIFTDescriptorTransform  
2528 -  
2529 -Specialize wrapper OpenCV SIFT wrapper  
2530 -  
2531 -* **file:** imgproc/sift.cpp  
2532 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2533 -* **author:** Josh Klontz  
2534 -* **properties:** None  
2535 -  
2536 ----  
2537 -  
2538 -#### SkinMaskTransform  
2539 -  
2540 -http://worldofcameras.wordpress.com/tag/skin-detection-opencv/  
2541 -  
2542 -* **file:** imgproc/skinmask.cpp  
2543 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2544 -* **author:** Josh Klontz  
2545 -* **properties:** None  
2546 -  
2547 ----  
2548 -  
2549 -#### SlidingWindowTransform  
2550 -  
2551 -Applies a transform to a sliding window.  
2552 -  
2553 -* **file:** imgproc/slidingwindow.cpp  
2554 -* **inherits:** [Transform](abstractions.md#transform)  
2555 -* **author:** Austin Blanton  
2556 -* **properties:** None  
2557 -  
2558 ----  
2559 -  
2560 -#### IntegralSlidingWindowTransform  
2561 -  
2562 -Overloads SlidingWindowTransform for integral images that should be  
2563 -  
2564 -* **file:** imgproc/slidingwindow.cpp  
2565 -* **inherits:** [SlidingWindowTransform](abstractions.md#slidingwindowtransform)  
2566 -* **author:** Josh Klontz  
2567 -* **properties:** None  
2568 -  
2569 ----  
2570 -  
2571 -#### SplitChannelsTransform  
2572 -  
2573 -Split a multi-channel matrix into several single-channel matrices.  
2574 -  
2575 -* **file:** imgproc/splitchannels.cpp  
2576 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2577 -* **author:** Josh Klontz  
2578 -* **properties:** None  
2579 -  
2580 ----  
2581 -  
2582 -#### SubdivideTransform  
2583 -  
2584 -Divide the matrix into 4 smaller matricies of equal size.  
2585 -  
2586 -* **file:** imgproc/subdivide.cpp  
2587 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2588 -* **author:** Josh Klontz  
2589 -* **properties:** None  
2590 -  
2591 ----  
2592 -  
2593 -#### SubtractTransform  
2594 -  
2595 -Subtract two matrices.  
2596 -  
2597 -* **file:** imgproc/subtract.cpp  
2598 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
2599 -* **author:** Josh Klontz  
2600 -* **properties:** None  
2601 -  
2602 ----  
2603 -  
2604 -#### ThresholdTransform  
2605 -  
2606 -Wraps OpenCV's adaptive thresholding.  
2607 -  
2608 -* **file:** imgproc/threshold.cpp  
2609 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2610 -* **author:** Scott Klum  
2611 -* **properties:** None  
2612 -  
2613 ----  
2614 -  
2615 -#### WatershedSegmentationTransform  
2616 -  
2617 -Applies watershed segmentation.  
2618 -  
2619 -* **file:** imgproc/watershedsegmentation.cpp  
2620 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2621 -* **author:** Austin Blanton  
2622 -* **properties:** None  
2623 -  
2624 -## Io  
2625 -  
2626 ----  
2627 -  
2628 -#### DecodeTransform  
2629 -  
2630 -Decodes images  
2631 -  
2632 -* **file:** io/decode.cpp  
2633 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2634 -* **author:** Josh Klontz  
2635 -* **properties:** None  
2636 -  
2637 ----  
2638 -  
2639 -#### DownloadTransform  
2640 -  
2641 -Downloads an image from a URL  
2642 -  
2643 -* **file:** io/download.cpp  
2644 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
2645 -* **author:** Josh Klontz  
2646 -* **properties:** None  
2647 -  
2648 ----  
2649 -  
2650 -#### IncrementalOutputTransform  
2651 -  
2652 -Incrementally output templates received to a gallery, based on the current filename  
2653 -  
2654 -* **file:** io/incrementaloutput.cpp  
2655 -* **inherits:** [TimeVaryingTransform](abstractions.md#timevaryingtransform)  
2656 -* **author:** Charles Otto  
2657 -* **properties:** None  
2658 -  
2659 ----  
2660 -  
2661 -#### OpenTransform  
2662 -  
2663 -Applies br::Format to br::Template::file::name and appends results.  
2664 -  
2665 -* **file:** io/open.cpp  
2666 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
2667 -* **author:** Josh Klontz  
2668 -* **properties:** None  
2669 -  
2670 ----  
2671 -  
2672 -#### PrintTransform  
2673 -  
2674 -Prints the template's file to stdout or stderr.  
2675 -  
2676 -* **file:** io/print.cpp  
2677 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
2678 -* **author:** Josh Klontz  
2679 -* **properties:** None  
2680 -  
2681 ----  
2682 -  
2683 -#### ReadTransform  
2684 -  
2685 -Read images  
2686 -  
2687 -* **file:** io/read.cpp  
2688 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
2689 -* **author:** Josh Klontz  
2690 -* **properties:** None  
2691 -  
2692 ----  
2693 -  
2694 -#### ReadLandmarksTransform  
2695 -  
2696 -Read landmarks from a file and associate them with the correct templates.  
2697 -  
2698 -* **file:** io/readlandmarks.cpp  
2699 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
2700 -* **author:** Scott Klum  
2701 -* **properties:** None  
2702 -  
2703 ----  
2704 -  
2705 -#### WriteTransform  
2706 -  
2707 -Write all mats to disk as images.  
2708 -  
2709 -* **file:** io/write.cpp  
2710 -* **inherits:** [TimeVaryingTransform](abstractions.md#timevaryingtransform)  
2711 -* **author:** Brendan Klare  
2712 -* **properties:** None  
2713 -  
2714 ----  
2715 -  
2716 -#### YouTubeFacesDBTransform  
2717 -  
2718 -Implements the YouTubesFaceDB  
2719 -  
2720 -* **file:** io/youtubefacesdb.cpp  
2721 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
2722 -* **author:** Josh Klontz  
2723 -* **properties:** None  
2724 -  
2725 -## Metadata  
2726 -  
2727 ----  
2728 -  
2729 -#### AnonymizeLandmarksTransform  
2730 -  
2731 -Remove a name from a point/rect  
2732 -  
2733 -* **file:** metadata/anonymizelandmarks.cpp  
2734 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
2735 -* **author:** Scott Klum  
2736 -* **properties:** None  
2737 -  
2738 ----  
2739 -  
2740 -#### AsTransform  
2741 -  
2742 -Change the br::Template::file extension  
2743 -  
2744 -* **file:** metadata/as.cpp  
2745 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
2746 -* **author:** Josh Klontz  
2747 -* **properties:** None  
2748 -  
2749 ----  
2750 -  
2751 -#### AveragePointsTransform  
2752 -  
2753 -Averages a set of landmarks into a new landmark  
2754 -  
2755 -* **file:** metadata/averagepoints.cpp  
2756 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
2757 -* **author:** Brendan Klare  
2758 -* **properties:** None  
2759 -  
2760 ----  
2761 -  
2762 -#### CascadeTransform  
2763 -  
2764 -Wraps OpenCV cascade classifier  
2765 -  
2766 -* **file:** metadata/cascade.cpp  
2767 -* **inherits:** [MetaTransform](abstractions.md#metatransform)  
2768 -* **authors:** Josh Klontz, David Crouse  
2769 -* **properties:** None  
2770 -  
2771 ----  
2772 -  
2773 -#### CheckTransform  
2774 -  
2775 -Checks the template for NaN values.  
2776 -  
2777 -* **file:** metadata/check.cpp  
2778 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
2779 -* **author:** Josh Klontz  
2780 -* **properties:** None  
2781 -  
2782 ----  
2783 -  
2784 -#### ClearPointsTransform  
2785 -  
2786 -Clears the points from a template  
2787 -  
2788 -* **file:** metadata/clearpoints.cpp  
2789 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
2790 -* **author:** Brendan Klare  
2791 -* **properties:** None  
2792 -  
2793 ----  
2794 -  
2795 -#### ConsolidateDetectionsTransform  
2796 -  
2797 -Consolidate redundant/overlapping detections.  
2798 -  
2799 -* **file:** metadata/consolidatedetections.cpp  
2800 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
2801 -* **author:** Brendan Klare  
2802 -* **properties:** None  
2803 -  
2804 ----  
2805 -  
2806 -#### CropRectTransform  
2807 -  
2808 -Crops the width and height of a template's rects by input width and height factors.  
2809 -  
2810 -* **file:** metadata/croprect.cpp  
2811 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
2812 -* **author:** Scott Klum  
2813 -* **properties:** None  
2814 -  
2815 ----  
2816 -  
2817 -#### DelaunayTransform  
2818 -  
2819 -Creates a Delaunay triangulation based on a set of points  
2820 -  
2821 -* **file:** metadata/delaunay.cpp  
2822 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2823 -* **author:** Scott Klum  
2824 -* **properties:** None  
2825 -  
2826 ----  
2827 -  
2828 -#### ExpandRectTransform  
2829 -  
2830 -Expand the width and height of a template's rects by input width and height factors.  
2831 -  
2832 -* **file:** metadata/expandrect.cpp  
2833 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2834 -* **author:** Charles Otto  
2835 -* **properties:** None  
2836 -  
2837 ----  
2838 -  
2839 -#### ExtractMetadataTransform  
2840 -  
2841 -Create matrix from metadata values.  
2842 -  
2843 -* **file:** metadata/extractmetadata.cpp  
2844 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
2845 -* **author:** Josh Klontz  
2846 -* **properties:** None  
2847 -  
2848 ----  
2849 -  
2850 -#### ASEFEyesTransform  
2851 -  
2852 -Bolme, D.S.; Draper, B.A.; Beveridge, J.R.;  
2853 -  
2854 -* **file:** metadata/eyes.cpp  
2855 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2856 -* **authors:** David Bolme, Josh Klontz  
2857 -* **properties:** None  
2858 -  
2859 ----  
2860 -  
2861 -#### FilterDupeMetadataTransform  
2862 -  
2863 -Removes duplicate templates based on a unique metadata key  
2864 -  
2865 -* **file:** metadata/filterdupemetadata.cpp  
2866 -* **inherits:** [TimeVaryingTransform](abstractions.md#timevaryingtransform)  
2867 -* **author:** Austin Blanton  
2868 -* **properties:** None  
2869 -  
2870 ----  
2871 -  
2872 -#### GridTransform  
2873 -  
2874 -Add landmarks to the template in a grid layout  
2875 -  
2876 -* **file:** metadata/grid.cpp  
2877 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2878 -* **author:** Josh Klontz  
2879 -* **properties:** None  
2880 -  
2881 ----  
2882 -  
2883 -#### GroundTruthTransform  
2884 -  
2885 -Add any ground truth to the template using the file's base name.  
2886 -  
2887 -* **file:** metadata/groundtruth.cpp  
2888 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
2889 -* **author:** Josh Klontz  
2890 -* **properties:** None  
2891 -  
2892 ----  
2893 -  
2894 -#### HOGPersonDetectorTransform  
2895 -  
2896 -Detects objects with OpenCV's built-in HOG detection.  
2897 -  
2898 -* **file:** metadata/hogpersondetector.cpp  
2899 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2900 -* **author:** Austin Blanton  
2901 -* **properties:** None  
2902 -  
2903 ----  
2904 -  
2905 -#### IfMetadataTransform  
2906 -  
2907 -Clear templates without the required metadata.  
2908 -  
2909 -* **file:** metadata/ifmetadata.cpp  
2910 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
2911 -* **author:** Josh Klontz  
2912 -* **properties:** None  
2913 -  
2914 ----  
2915 -  
2916 -#### ImpostorUniquenessMeasureTransform  
2917 -  
2918 -Impostor Uniqueness Measure  
2919 -  
2920 -* **file:** metadata/imposteruniquenessmeasure.cpp  
2921 -* **inherits:** [Transform](abstractions.md#transform)  
2922 -* **author:** Josh Klontz  
2923 -* **properties:** None  
2924 -  
2925 ----  
2926 -  
2927 -#### JSONTransform  
2928 -  
2929 -Represent the metadata as JSON template data.  
2930 -  
2931 -* **file:** metadata/json.cpp  
2932 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
2933 -* **author:** Josh Klontz  
2934 -* **properties:** None  
2935 -  
2936 ----  
2937 -  
2938 -#### KeepMetadataTransform  
2939 -  
2940 -Retains only the values for the keys listed, to reduce template size  
2941 -  
2942 -* **file:** metadata/keepmetadata.cpp  
2943 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
2944 -* **author:** Scott Klum  
2945 -* **properties:** None  
2946 -  
2947 ----  
2948 -  
2949 -#### KeyPointDetectorTransform  
2950 -  
2951 -Wraps OpenCV Key Point Detector  
2952 -  
2953 -* **file:** metadata/keypointdetector.cpp  
2954 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
2955 -* **author:** Josh Klontz  
2956 -* **properties:** None  
2957 -  
2958 ----  
2959 -  
2960 -#### KeyToRectTransform  
2961 -  
2962 -Convert values of key_X, key_Y, key_Width, key_Height to a rect.  
2963 -  
2964 -* **file:** metadata/keytorect.cpp  
2965 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
2966 -* **author:** Jordan Cheney  
2967 -* **properties:** None  
2968 -  
2969 ----  
2970 -  
2971 -#### MongooseInitializer  
2972 -  
2973 -Initialize mongoose server  
2974 -  
2975 -* **file:** metadata/mongoose.cpp  
2976 -* **inherits:** [Initializer](abstractions.md#initializer)  
2977 -* **author:** Unknown  
2978 -* **properties:** None  
2979 -  
2980 ----  
2981 -  
2982 -#### NameTransform  
2983 -  
2984 -Sets the template's matrix data to the br::File::name.  
2985 -  
2986 -* **file:** metadata/name.cpp  
2987 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
2988 -* **author:** Josh Klontz  
2989 -* **properties:** None  
2990 -  
2991 ----  
2992 -  
2993 -#### NameLandmarksTransform  
2994 -  
2995 -Name a point/rect  
2996 -  
2997 -* **file:** metadata/namelandmarks.cpp  
2998 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
2999 -* **author:** Scott Klum  
3000 -* **properties:** None  
3001 -  
3002 ----  
3003 -  
3004 -#### NormalizePointsTransform  
3005 -  
3006 -Normalize points to be relative to a single point  
3007 -  
3008 -* **file:** metadata/normalizepoints.cpp  
3009 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
3010 -* **author:** Scott Klum  
3011 -* **properties:** None  
3012 -  
3013 ----  
3014 -  
3015 -#### PointDisplacementTransform  
3016 -  
3017 -Normalize points to be relative to a single point  
3018 -  
3019 -* **file:** metadata/pointdisplacement.cpp  
3020 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
3021 -* **author:** Scott Klum  
3022 -* **properties:** None  
3023 -  
3024 ----  
3025 -  
3026 -#### PointsToMatrixTransform  
3027 -  
3028 -Converts either the file::points() list or a QList<QPointF> metadata item to be the template's matrix  
3029 -  
3030 -* **file:** metadata/pointstomatrix.cpp  
3031 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
3032 -* **author:** Scott Klum  
3033 -* **properties:** None  
3034 -  
3035 ----  
3036 -  
3037 -#### ProcrustesTransform  
3038 -  
3039 -Procrustes alignment of points  
3040 -  
3041 -* **file:** metadata/procrustes.cpp  
3042 -* **inherits:** [MetadataTransform](abstractions.md#metadatatransform)  
3043 -* **author:** Scott Klum  
3044 -* **properties:** None  
3045 -  
3046 ----  
3047 -  
3048 -#### RectsToTemplatesTransform  
3049 -  
3050 -For each rectangle bounding box in src, a new  
3051 -  
3052 -* **file:** metadata/rectstotemplates.cpp  
3053 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
3054 -* **author:** Brendan Klare  
3055 -* **properties:** None  
3056 -  
3057 ----  
3058 -  
3059 -#### RegexPropertyTransform  
3060 -  
3061 -Apply the input regular expression to the value of inputProperty, store the matched portion in outputProperty.  
3062 -  
3063 -* **file:** metadata/regexproperty.cpp  
3064 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
3065 -* **author:** Charles Otto  
3066 -* **properties:** None  
3067 -  
3068 ----  
3069 -  
3070 -#### RemoveMetadataTransform  
3071 -  
3072 -Removes a metadata field from all templates  
3073 -  
3074 -* **file:** metadata/removemetadata.cpp  
3075 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
3076 -* **author:** Brendan Klare  
3077 -* **properties:** None  
3078 -  
3079 ----  
3080 -  
3081 -#### RemoveTemplatesTransform  
3082 -  
3083 -Remove templates with the specified file extension or metadata value.  
3084 -  
3085 -* **file:** metadata/removetemplates.cpp  
3086 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
3087 -* **author:** Josh Klontz  
3088 -* **properties:** None  
3089 -  
3090 ----  
3091 -  
3092 -#### RenameTransform  
3093 -  
3094 -Rename metadata key  
3095 -  
3096 -* **file:** metadata/rename.cpp  
3097 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
3098 -* **author:** Josh Klontz  
3099 -* **properties:** None  
3100 -  
3101 ----  
3102 -  
3103 -#### RenameFirstTransform  
3104 -  
3105 -Rename first found metadata key  
3106 -  
3107 -* **file:** metadata/renamefirst.cpp  
3108 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
3109 -* **author:** Josh Klontz  
3110 -* **properties:** None  
3111 -  
3112 ----  
3113 -  
3114 -#### ReorderPointsTransform  
3115 -  
3116 -Reorder the points such that points[from[i]] becomes points[to[i]] and  
3117 -  
3118 -* **file:** metadata/reorderpoints.cpp  
3119 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
3120 -* **author:** Scott Klum  
3121 -* **properties:** None  
3122 -  
3123 ----  
3124 -  
3125 -#### RestoreMatTransform  
3126 -  
3127 -Set the last matrix of the input template to a matrix stored as metadata with input propName.  
3128 -  
3129 -* **file:** metadata/restoremat.cpp  
3130 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
3131 -* **author:** Charles Otto  
3132 -* **properties:** None  
3133 -  
3134 ----  
3135 -  
3136 -#### SaveMatTransform  
3137 -  
3138 -Store the last matrix of the input template as a metadata key with input property name.  
3139 -  
3140 -* **file:** metadata/savemat.cpp  
3141 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
3142 -* **author:** Charles Otto  
3143 -* **properties:** None  
3144 -  
3145 ----  
3146 -  
3147 -#### SelectPointsTransform  
3148 -  
3149 -Retains only landmarks/points at the provided indices  
3150 -  
3151 -* **file:** metadata/selectpoints.cpp  
3152 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
3153 -* **author:** Brendan Klare  
3154 -* **properties:** None  
3155 -  
3156 ----  
3157 -  
3158 -#### SetMetadataTransform  
3159 -  
3160 -Sets the metadata key/value pair.  
3161 -  
3162 -* **file:** metadata/setmetadata.cpp  
3163 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
3164 -* **author:** Josh Klontz  
3165 -* **properties:** None  
3166 -  
3167 ----  
3168 -  
3169 -#### SetPointsInRectTransform  
3170 -  
3171 -Set points relative to a rect  
3172 -  
3173 -* **file:** metadata/setpointsinrect.cpp  
3174 -* **inherits:** [UntrainableMetadataTransform](abstractions.md#untrainablemetadatatransform)  
3175 -* **author:** Jordan Cheney  
3176 -* **properties:** None  
3177 -  
3178 ----  
3179 -  
3180 -#### StasmInitializer  
3181 -  
3182 -Initialize Stasm  
3183 -  
3184 -* **file:** metadata/stasm4.cpp  
3185 -* **inherits:** [Initializer](abstractions.md#initializer)  
3186 -* **author:** Scott Klum  
3187 -* **properties:** None  
3188 -  
3189 ----  
3190 -  
3191 -#### StasmTransform  
3192 -  
3193 -Wraps STASM key point detector  
3194 -  
3195 -* **file:** metadata/stasm4.cpp  
3196 -* **inherits:** [UntrainableTransform](abstractions.md#untrainabletransform)  
3197 -* **author:** Scott Klum  
3198 -* **properties:** None  
3199 -  
3200 ----  
3201 -  
3202 -#### StopWatchTransform  
3203 -  
3204 -Gives time elapsed over a specified transform as a function of both images (or frames) and pixels.  
3205 -  
3206 -* **file:** metadata/stopwatch.cpp  
3207 -* **inherits:** [MetaTransform](abstractions.md#metatransform)  
3208 -* **authors:** Jordan Cheney, Josh Klontz  
3209 -* **properties:** None  
3210 -  
3211 -## Output  
3212 -  
3213 ----  
3214 -  
3215 -#### bestOutput  
3216 -  
3217 -The highest scoring matches.  
3218 -  
3219 -* **file:** output/best.cpp  
3220 -* **inherits:** [Output](abstractions.md#output)  
3221 -* **author:** Josh Klontz  
3222 -* **properties:** None  
3223 -  
3224 ----  
3225 -  
3226 -#### csvOutput  
3227 -  
3228 -Comma separated values output.  
3229 -  
3230 -* **file:** output/csv.cpp  
3231 -* **inherits:** [MatrixOutput](abstractions.md#matrixoutput)  
3232 -* **author:** Josh Klontz  
3233 -* **properties:** None  
3234 -  
3235 ----  
3236 -  
3237 -#### DefaultOutput  
3238 -  
3239 -Adaptor class -- write a matrix output using Format classes.  
3240 -  
3241 -* **file:** output/default.cpp  
3242 -* **inherits:** [MatrixOutput](abstractions.md#matrixoutput)  
3243 -* **author:** Charles Otto  
3244 -* **properties:** None  
3245 -  
3246 ----  
3247 -  
3248 -#### EmptyOutput  
3249 -  
3250 -Output to the terminal.  
3251 -  
3252 -* **file:** output/empty.cpp  
3253 -* **inherits:** [MatrixOutput](abstractions.md#matrixoutput)  
3254 -* **author:** Josh Klontz  
3255 -* **properties:** None  
3256 -  
3257 ----  
3258 -  
3259 -#### evalOutput  
3260 -  
3261 -Evaluate the output matrix.  
3262 -  
3263 -* **file:** output/eval.cpp  
3264 -* **inherits:** [MatrixOutput](abstractions.md#matrixoutput)  
3265 -* **author:** Josh Klontz  
3266 -* **properties:** None  
3267 -  
3268 ----  
3269 -  
3270 -#### heatOutput  
3271 -  
3272 -Matrix-like output for heat maps.  
3273 -  
3274 -* **file:** output/heat.cpp  
3275 -* **inherits:** [MatrixOutput](abstractions.md#matrixoutput)  
3276 -* **author:** Scott Klum  
3277 -* **properties:** None  
3278 -  
3279 ----  
3280 -  
3281 -#### histOutput  
3282 -  
3283 -Score histogram.  
3284 -  
3285 -* **file:** output/hist.cpp  
3286 -* **inherits:** [Output](abstractions.md#output)  
3287 -* **author:** Josh Klontz  
3288 -* **properties:** None  
3289 -  
3290 ----  
3291 -  
3292 -#### meltOutput  
3293 -  
3294 -One score per row.  
3295 -  
3296 -* **file:** output/melt.cpp  
3297 -* **inherits:** [MatrixOutput](abstractions.md#matrixoutput)  
3298 -* **author:** Josh Klontz  
3299 -* **properties:** None  
3300 -  
3301 ----  
3302 -  
3303 -#### mtxOutput  
3304 -  
3305 -  
3306 -  
3307 -* **file:** output/mtx.cpp  
3308 -* **inherits:** [Output](abstractions.md#output)  
3309 -* **author:** Josh Klontz  
3310 -* **properties:** None  
3311 -  
3312 ----  
3313 -  
3314 -#### nullOutput  
3315 -  
3316 -Discards the scores.  
3317 -  
3318 -* **file:** output/null.cpp  
3319 -* **inherits:** [Output](abstractions.md#output)  
3320 -* **author:** Josh Klontz  
3321 -* **properties:** None  
3322 -  
3323 ----  
3324 -  
3325 -#### rankOutput  
3326 -  
3327 -Outputs highest ranked matches with scores.  
3328 -  
3329 -* **file:** output/rank.cpp  
3330 -* **inherits:** [MatrixOutput](abstractions.md#matrixoutput)  
3331 -* **author:** Scott Klum  
3332 -* **properties:** None  
3333 -  
3334 ----  
3335 -  
3336 -#### rrOutput  
3337 -  
3338 -Rank retrieval output.  
3339 -  
3340 -* **file:** output/rr.cpp  
3341 -* **inherits:** [MatrixOutput](abstractions.md#matrixoutput)  
3342 -* **authors:** Josh Klontz, Scott Klum  
3343 -* **properties:** None  
3344 -  
3345 ----  
3346 -  
3347 -#### tailOutput  
3348 -  
3349 -The highest scoring matches.  
3350 -  
3351 -* **file:** output/tail.cpp  
3352 -* **inherits:** [Output](abstractions.md#output)  
3353 -* **author:** Josh Klontz  
3354 -* **properties:** None  
3355 -  
3356 ----  
3357 -  
3358 -#### txtOutput  
3359 -  
3360 -Text file output.  
3361 -  
3362 -* **file:** output/txt.cpp  
3363 -* **inherits:** [MatrixOutput](abstractions.md#matrixoutput)  
3364 -* **author:** Josh Klontz  
3365 -* **properties:** None  
3366 -  
3367 -## Video  
3368 -  
3369 ----  
3370 -  
3371 -#### AggregateFrames  
3372 -  
3373 -Passes along n sequential frames to the next transform.  
3374 -  
3375 -* **file:** video/aggregate.cpp  
3376 -* **inherits:** [TimeVaryingTransform](abstractions.md#timevaryingtransform)  
3377 -* **author:** Josh Klontz  
3378 -* **properties:** None  
3379 -  
3380 ----  
3381 -  
3382 -#### DropFrames  
3383 -  
3384 -Only use one frame every n frames.  
3385 -  
3386 -* **file:** video/drop.cpp  
3387 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
3388 -* **author:** Austin Blanton  
3389 -* **properties:** None  
3390 -  
3391 ----  
3392 -  
3393 -#### OpticalFlowTransform  
3394 -  
3395 -Gets a one-channel dense optical flow from two images  
3396 -  
3397 -* **file:** video/opticalflow.cpp  
3398 -* **inherits:** [UntrainableMetaTransform](abstractions.md#untrainablemetatransform)  
3399 -* **author:** Austin Blanton  
3400 -* **properties:** None  
3401 -  
docs/docs/technical.md
1 -# Technical Overview of the OpenBR System  
2 -  
3 ----  
4 -  
5 -## Algorithms in OpenBR 1 +# Algorithms in OpenBR
6 2
7 **So you've run `scripts/helloWorld.sh` and it generally makes sense, except you have no idea what `'Open+Cvt(Gray)+Cascade(FrontalFace)+ASEFEyes+Affine(128,128,0.33,0.45)+CvtFloat+PCA(0.95):Dist(L2)'` means or how it is executed.** 3 **So you've run `scripts/helloWorld.sh` and it generally makes sense, except you have no idea what `'Open+Cvt(Gray)+Cascade(FrontalFace)+ASEFEyes+Affine(128,128,0.33,0.45)+CvtFloat+PCA(0.95):Dist(L2)'` means or how it is executed.**
8 4
@@ -38,7 +34,7 @@ These make calls are defined in the public [C++ plugin API](#the c++ plugin api) @@ -38,7 +34,7 @@ These make calls are defined in the public [C++ plugin API](#the c++ plugin api)
38 Below we discuss some of the source code for `Transform::make` in `openbr/openbr_plugin.cpp`. 34 Below we discuss some of the source code for `Transform::make` in `openbr/openbr_plugin.cpp`.
39 Note, the make functions for other plugin types are similar in spirit and will not be covered. 35 Note, the make functions for other plugin types are similar in spirit and will not be covered.
40 36
41 -One of the first steps when converting the template enrollment description into a [Transform](abstractions.md#Transform) is to replace the operators, like '+', with their full form: 37 +One of the first steps when converting the template enrollment description into a [Transform](docs/cpp_api.md#Transform) is to replace the operators, like '+', with their full form:
42 38
43 { // Check for use of '+' as shorthand for Pipe(...) 39 { // Check for use of '+' as shorthand for Pipe(...)
44 QStringList words = parse(str, '+'); 40 QStringList words = parse(str, '+');
@@ -46,15 +42,15 @@ One of the first steps when converting the template enrollment description into @@ -46,15 +42,15 @@ One of the first steps when converting the template enrollment description into
46 return make("Pipe([" + words.join(",") + "])", parent); 42 return make("Pipe([" + words.join(",") + "])", parent);
47 } 43 }
48 44
49 -A pipe (see [PipeTransform](plugins.md#pipetransform)) is the standard way of chaining together multiple steps in series to form more sophisticated algorithms.  
50 -PipeTransform takes a list of transforms, and <i>projects</i> templates through each transform in order. 45 +A pipe (see [PipeTransform](docs/plugins/core.md#pipetransform)) is the standard way of chaining together multiple steps in series to form more sophisticated algorithms.
  46 +PipeTransform takes a list of transforms, and *projects* templates through each transform in order.
51 47
52 After operator expansion, the template enrollment description forms a tree, and the transform is constructed from this description starting recursively starting at the root of the tree: 48 After operator expansion, the template enrollment description forms a tree, and the transform is constructed from this description starting recursively starting at the root of the tree:
53 49
54 Transform *transform = Factory<Transform>::make("." + str); 50 Transform *transform = Factory<Transform>::make("." + str);
55 51
56 At this point we reach arguably the most important code in the entire framework, the *object factory* in `openbr/openbr_plugin.h`. 52 At this point we reach arguably the most important code in the entire framework, the *object factory* in `openbr/openbr_plugin.h`.
57 -The [Factory](abstractions.md#factory) class is responsible for constructing an object from a string: 53 +The [Factory](docs/cpp_api.md#factory) class is responsible for constructing an object from a string:
58 54
59 static T *make(const File &file) 55 static T *make(const File &file)
60 { 56 {
@@ -70,11 +66,11 @@ The [Factory](abstractions.md#factory) class is responsible for constructing an @@ -70,11 +66,11 @@ The [Factory](abstractions.md#factory) class is responsible for constructing an
70 return object; 66 return object;
71 } 67 }
72 68
73 -Going back to our original example, a [PipeTransform](plugins.md#pipetransform) will be created with [OpenTransform](plugins.md#opentransform), [CvtTransform](plugins.md#cvttransform), [CascadeTransform](plugins.md#cascadetransform), [ASEFEyesTransform](plugins.md#asefeyestransform), [AffineTransform](plugins.md#affinetransform), [CvtFloatTransform](plugins.md#cvtfloattransform), and [PCATransform](plugins.md#pcatransform) as its children. 69 +Going back to our original example, a [PipeTransform](docs/plugins/core.md#pipetransform) will be created with [OpenTransform](docs/plugins/io.md#opentransform), [CvtTransform](docs/plugins/imgproc.md#cvttransform), [CascadeTransform](docs/plugins/metadata.md#cascadetransform), [ASEFEyesTransform](docs/plugins/metadata.md#asefeyestransform), [AffineTransform](docs/plugins/imgproc.md#affinetransform), [CvtFloatTransform](docs/plugins/imgproc.md#cvtfloattransform), and [PCATransform](docs/plugins/classification.md#pcatransform) as its children.
74 70
75 -If you want all the tedious details about what exactly this algoritm does, then you should read the [project](abstractions.md#transform#project) function implemented by each of these plugins. 71 +If you want all the tedious details about what exactly this algoritm does, then you should read the [project](docs/cpp_api.md#project) function implemented by each of these plugins.
76 The brief explanation is that it *reads the image from disk, converts it to grayscale, runs the face detector, runs the eye detector on any detected faces, uses the eye locations to normalize the face for rotation and scale, converts to floating point format, and then embeds it in a PCA subspaced trained on face images*. 72 The brief explanation is that it *reads the image from disk, converts it to grayscale, runs the face detector, runs the eye detector on any detected faces, uses the eye locations to normalize the face for rotation and scale, converts to floating point format, and then embeds it in a PCA subspaced trained on face images*.
77 If you are familiar with face recognition, you will likely recognize this as the Eigenfaces \cite turk1991eigenfaces algorithm. 73 If you are familiar with face recognition, you will likely recognize this as the Eigenfaces \cite turk1991eigenfaces algorithm.
78 74
79 As a final note, the Eigenfaces algorithms uses the Euclidean distance (or L2-norm) to compare templates. 75 As a final note, the Eigenfaces algorithms uses the Euclidean distance (or L2-norm) to compare templates.
80 -Since OpenBR expects *similarity* values when comparing templates, and not *distances*, the [DistDistance](plugins.md#distdistance) will return *-log(distance+1)* so that larger values indicate more similarity. 76 +Since OpenBR expects *similarity* values when comparing templates, and not *distances*, the [DistDistance](docs/plugins/distance.md#distdistance) will return *-log(distance+1)* so that larger values indicate more similarity.
docs/docs/tutorials.md
1 -# Tutorials  
2 1
3 -Learn OpenBR! 2 +Welcome to OpenBR! Here we have a series of tutorials designed to get you up to speed on what OpenBR is, how it works, its command line interface, and the C API. These tutorials aren't meant to be completed in a specific order so feel free to hop around. If you need help, feel free to [contact us](index.md#help).
4 3
5 --- 4 ---
6 5
7 -Welcome to OpenBR! Here we have a series of tutorials designed to get you up to speed on what OpenBR is, how it works, its command line interface, and the C API. These tutorials aren't meant to be completed in a specific order so feel free to hop around. If you need help, feel free to [contact us](index.md#help). 6 +# OpenBR in 10 minutes or less!
8 7
9 ---- 8 +This tutorial is meant to familiarize you with the ideas, objects and motivations behind OpenBR using some fun examples. **Note:** parts of this tutorial require a webcam.
  9 +
  10 +OpenBR is a C++ library built on top of QT and OpenCV. It can either be used from the command line using the **br** application, or from interfacing with the [C API](#c-api). The command line is the easiest and fastest way to get started and this tutorial will use it for all of the examples.
  11 +
  12 +First, make sure that OpenBR has been installed on your system using the steps described in the [installation section](#install.md). Then open up your terminal or command prompt and enter:
  13 +
  14 + $ br -gui -algorithm "Open+Show(false)" -enroll 0.webcam
  15 +
  16 +If everything goes well your webcam should have opened up and is streaming. Look you are using OpenBR! Let's talk about what's happening in this command. OpenBR expects flags to be prepended by a *-* and arguments to follow the flags and be separated by spaces. Flags normally require a specific number of flags. All of the possible flags and their values are [documented here](#docs/cl_api.md). Let's step through the individual arguments and values. **-gui** is the flag that tells OpenBR to open up a GUI window. Take a look at the [GUI plugins](#docs/plugins/gui.md) for other plugins that require the **-gui** flag. **-algorithm** is one of the most important flags in OpenBR. It expects one argument called the *algorithm string*. This string determines the pipeline that images and metadata propagate through. Finally, **-enroll** reads files from disk and *enrolls* them into the image pipeline. It takes one input argument (0.webcam in our example) and an optional output argument. OpenBR has a range of formats that can be enrolled into algorithms, some examples include .jpg, .png, .csv, and .xml. .webcam tells OpenBR to enroll frames from the computers webcam.
  17 +
  18 +Let's try a slightly more complicated example, after all OpenBR can do way more then just open webcams! Face detection is normally the first step in a [face recognition](#face recognition) algorithm. Let's do face detection in OpenBR. Open up the terminal again and enter:
10 19
11 -## OpenBR in 10 minutes or less! 20 + $ br -gui -algorithm "Open+Cvt(Gray)+Cascade(FrontalFace)+Draw+Show(false)" -enroll 0.webcam
12 21
13 -This tutorial is meant to familiarize you with the ideas, objects and motivations behind OpenBR. If all you want to do is use some OpenBR applications or API calls the next tutorials might be more relevant to you.  
14 22
15 -OpenBR is a C++ library built on top of QT and OpenCV. It was built primarily as a platform for [face recognition](#face recognition) but has grown to do other things like [age recognition](#age recognition) and [gender recognition](#gender recognition). The different functionalities of OpenBR are specified by algorithms which are passed in as strings. The algorithm to do face recognition is 23 +It was built primarily as a platform for [face recognition](#face recognition) but has grown to do other things like [age recognition](#age recognition) and [gender recognition](#gender recognition). The different functionalities of OpenBR are specified by algorithms which are passed in as strings. The algorithm to do face recognition is
16 24
17 $ Open+Cvt(Gray)+Cascade(FrontalFace)+ASEFEyes+Affine(88,88,0.25,0.35)+<Mask+DenseSIFT/DenseLBP+DownsampleTraining(PCA(0.95),instances=1)+Normalize(L2)+Cat>+<Dup(12)+RndSubspace(0.05,1)+DownsampleTraining(LDA(0.98),instances=-2)+Cat+DownsampleTraining(PCA(768),instances=1)>+<Normalize(L1)+Quantize)>+SetMetadata(AlgorithmID,-1):Unit(ByteL1) 25 $ Open+Cvt(Gray)+Cascade(FrontalFace)+ASEFEyes+Affine(88,88,0.25,0.35)+<Mask+DenseSIFT/DenseLBP+DownsampleTraining(PCA(0.95),instances=1)+Normalize(L2)+Cat>+<Dup(12)+RndSubspace(0.05,1)+DownsampleTraining(LDA(0.98),instances=-2)+Cat+DownsampleTraining(PCA(768),instances=1)>+<Normalize(L1)+Quantize)>+SetMetadata(AlgorithmID,-1):Unit(ByteL1)
18 26
19 Woah, that's a lot! Face recognition is a pretty complicated process! We will break this whole string down in just a second, but first we can showcase one of the founding principles of OpenBR. In the face recognition algorithm there are a series of steps separated by +'s (and a few other symbols but they will all be explained); these steps are called plugins and they are the building blocks of all OpenBR algorithms. Each plugin is completely independent of all of the other plugins around it and each one can be swapped, inserted or removed at any time to form new algorithms. This makes it really easy to test new ideas as you come up with them! 27 Woah, that's a lot! Face recognition is a pretty complicated process! We will break this whole string down in just a second, but first we can showcase one of the founding principles of OpenBR. In the face recognition algorithm there are a series of steps separated by +'s (and a few other symbols but they will all be explained); these steps are called plugins and they are the building blocks of all OpenBR algorithms. Each plugin is completely independent of all of the other plugins around it and each one can be swapped, inserted or removed at any time to form new algorithms. This makes it really easy to test new ideas as you come up with them!
20 28
21 -So, now lets talk about the basics of algorithms in OpenBR. We know that algorithms are just a series of plugins joined together using the + symbol. What about the : symbol right at the end of the algorithm however? :'s separate the processing part of the algorithm (also called enrollment or generation), from the evaluation part. OpenBR actually has different types of plugins to handle each part. Plugins to the left are called [transforms](abstractions.md#transform) and plugins to the right are called [distances](abstractions.md#distance). Transforms operate on the images as they pass through the algorithm and distances compare (or find the distance between) the images as they finish, usually constructing a similarity matrix in the process. 29 +So, now lets talk about the basics of algorithms in OpenBR. We know that algorithms are just a series of plugins joined together using the + symbol. What about the : symbol right at the end of the algorithm however? :'s separate the processing part of the algorithm (also called enrollment or generation), from the evaluation part. OpenBR actually has different types of plugins to handle each part. Plugins to the left are called [transforms](docs/cpp_api.md#transform) and plugins to the right are called [distances](docs/cpp_api.md#distance). Transforms operate on the images as they pass through the algorithm and distances compare (or find the distance between) the images as they finish, usually constructing a similarity matrix in the process.
22 30
23 -This leads us on a small tangent to discuss how images are handled in OpenBR. OpenBR has two structures dedicated to handling data as it passes through an algorithm, [Files](abstractions.md#file) and [Templates](abstractions.md#template). Files handle metadata, the text and other information that can be associated with an image, and templates act as a container for images (we use OpenCV mats) and files. These templates are passed from transform to transform through the algorithm and are *transformed* (see, the name makes sense!) as they go. 31 +This leads us on a small tangent to discuss how images are handled in OpenBR. OpenBR has two structures dedicated to handling data as it passes through an algorithm, [Files](docs/cpp_api.md#file) and [Templates](docs/cpp_api.md#template). Files handle metadata, the text and other information that can be associated with an image, and templates act as a container for images (we use OpenCV mats) and files. These templates are passed from transform to transform through the algorithm and are *transformed* (see, the name makes sense!) as they go.
24 32
25 -Great, you now know how data is handled in OpenBR but we still have a lot to cover in that algorithm string! Next lets talk about all of the parentheses next to each plugin. Many plugins have parameters that can be set at runtime. For example, [Cvt](plugins.md#cvttransform) (short for convert) changes the colorspace of an image. For face recognition we want to change it to gray so we pass in Gray as the parameter to Cvt. Pretty simple right? Parameters can either be passed in in the order they appear in the code, or they can use a key-value pairing. Cvt(Gray) is equivalent to Cvt(ColorSpace=Gray), check out the docs for the properties of each plugin. 33 +Great, you now know how data is handled in OpenBR but we still have a lot to cover in that algorithm string! Next lets talk about all of the parentheses next to each plugin. Many plugins have parameters that can be set at runtime. For example, [Cvt](docs/plugins/imgproc.md#cvttransform) (short for convert) changes the colorspace of an image. For face recognition we want to change it to gray so we pass in Gray as the parameter to Cvt. Pretty simple right? Parameters can either be passed in in the order they appear in the code, or they can use a key-value pairing. Cvt(Gray) is equivalent to Cvt(ColorSpace=Gray), check out the docs for the properties of each plugin.
26 34
27 -The last symbol we need to cover is <>. In OpenBR <> represents i/o. Transforms within these brackets will try and load their parameters from the hard drive if they can (they also still take parameters from the command line as you can see). Plugin i/o won't be covered here because it isn't critically important to making OpenBR work for you out of the gate. Stay tuned for a later tutorial on this. 35 +The last symbol we need to cover is <>. In OpenBR <> represents i/o. Transforms within these brackets will try and load their parameters from the hard drive if they can (they also still take parameters from the command line as you can see). Plugin i/o won't be covered here because it isn't critically important to making OpenBR work for you out of the gate. Stay tuned for a later tutorial on this.
docs/mkdocs.yml
1 site_name: OpenBR 1 site_name: OpenBR
  2 +theme: readthedocs
  3 +
2 pages: 4 pages:
3 -- [index.md, Home]  
4 -- [install.md, Install]  
5 -- [tutorials.md, Tutorials]  
6 -- [technical.md, Technical Overview]  
7 -- [abstractions.md, Docs, Abstractions]  
8 -- [plugins.md, Docs, Plugins]  
9 -theme: flatly 5 +- [index.md, OpenBR]
  6 +- [install.md, Home, Install]
  7 +- [tutorials.md, Home, Tutorials]
  8 +- [technical.md, Home, Technical Overview]
  9 +- [contribute.md, Home, Contribute]
  10 +- [docs/c_api.md, API Docs, C API]
  11 +- [docs/cpp_api.md, API Docs, C++ Plugin API]
  12 +- [docs/cl_api.md, API Docs, Command Line API]
  13 +- [docs/plugins/classification.md, Plugin Docs, Classification]
  14 +- [docs/plugins/cluster.md, Plugin Docs, Cluster]
  15 +- [docs/plugins/core.md, Plugin Docs, Core]
  16 +- [docs/plugins/distance.md, Plugin Docs, Distance]
  17 +- [docs/plugins/format.md, Plugin Docs, Format]
  18 +- [docs/plugins/gallery.md, Plugin Docs, Gallery]
  19 +- [docs/plugins/gui.md, Plugin Docs, GUI]
  20 +- [docs/plugins/imgproc.md, Plugin Docs, Image Processing]
  21 +- [docs/plugins/io.md, Plugin Docs, I/O]
  22 +- [docs/plugins/metadata.md, Plugin Docs, Metadata]
  23 +- [docs/plugins/output.md, Plugin Docs, Output]
  24 +- [docs/plugins/video.md, Plugin Docs, Video]
docs/scripts/generate_docs.py
@@ -7,6 +7,12 @@ def subfiles(path): @@ -7,6 +7,12 @@ def subfiles(path):
7 def subdirs(path): 7 def subdirs(path):
8 return [name for name in os.listdir(path) if os.path.isdir(os.path.join(path, name))] 8 return [name for name in os.listdir(path) if os.path.isdir(os.path.join(path, name))]
9 9
  10 +def formatModule(module):
  11 + if module == 'io':
  12 + return 'i/o'
  13 + else:
  14 + return module.capitalize()
  15 +
10 def parse(group): 16 def parse(group):
11 docs = re.compile('/\*\!(.*?)\*/', re.DOTALL) 17 docs = re.compile('/\*\!(.*?)\*/', re.DOTALL)
12 18
@@ -44,18 +50,14 @@ def parseProperties(properties): @@ -44,18 +50,14 @@ def parseProperties(properties):
44 50
45 def main(): 51 def main():
46 plugins_dir = '../../openbr/plugins/' 52 plugins_dir = '../../openbr/plugins/'
47 - output_file = open('../docs/plugins.md', 'w+')  
48 -  
49 - output_file.write("# Plugins\n\n" +  
50 - "A description of all of the plugins available in OpenBR, broken down" +  
51 - " by module. This section assumes knowledge of the [C++ Plugin API](technical.md#c++ plugin api)" +  
52 - " and the [plugin abstractions](abstractions.md).\n\n") 53 + output_dir = '../docs/docs/plugins/'
53 54
54 for module in subdirs(plugins_dir): 55 for module in subdirs(plugins_dir):
55 if module == "cmake": 56 if module == "cmake":
56 continue 57 continue
57 58
58 - output_file.write("## " + module.capitalize() + "\n\n") 59 + output_file = open(os.path.join(output_dir, module + '.md'), 'w+')
  60 +
59 for plugin in subfiles(os.path.join(plugins_dir, module)): 61 for plugin in subfiles(os.path.join(plugins_dir, module)):
60 f = open(os.path.join(os.path.join(plugins_dir, module), plugin), 'r') 62 f = open(os.path.join(os.path.join(plugins_dir, module), plugin), 'r')
61 content = f.read() 63 content = f.read()
@@ -68,10 +70,10 @@ def main(): @@ -68,10 +70,10 @@ def main():
68 continue 70 continue
69 71
70 output_file.write("---\n\n") 72 output_file.write("---\n\n")
71 - output_file.write("#### " + attributes["Name"] + "\n\n") 73 + output_file.write("# " + attributes["Name"] + "\n\n")
72 output_file.write(attributes["brief"][0] + "\n\n") 74 output_file.write(attributes["brief"][0] + "\n\n")
73 output_file.write("* **file:** " + os.path.join(module, plugin) + "\n") 75 output_file.write("* **file:** " + os.path.join(module, plugin) + "\n")
74 - output_file.write("* **inherits:** [" + attributes["Parent"] + "](abstractions.md#" + attributes["Parent"].lower() + ")\n") 76 + output_file.write("* **inherits:** [" + attributes["Parent"] + "](../cpp_api.md#" + attributes["Parent"].lower() + ")\n")
75 77
76 authors = attributes["author"] 78 authors = attributes["author"]
77 if len(authors) > 1: 79 if len(authors) > 1:
openbr/plugins/metadata/tester.cpp 0 → 100644
No preview for this file type