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 1 A hacker's guide to building, editing, and running OpenBR.
4 2  
5 3 ---
6 4  
7   -## Linux
  5 +# Linux
8 6  
9 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 81  
84 82 ---
85 83  
86   -## OSX
  84 +# OSX
87 85  
88 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 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 173  
176 174 ---
177 175  
178   -## Windows
  176 +# Windows
179 177  
180 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 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 244  
247 245 ---
248 246  
249   -## Raspian
  247 +# Raspian
250 248  
251 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 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 34 Below we discuss some of the source code for `Transform::make` in `openbr/openbr_plugin.cpp`.
39 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 39 { // Check for use of '+' as shorthand for Pipe(...)
44 40 QStringList words = parse(str, '+');
... ... @@ -46,15 +42,15 @@ One of the first steps when converting the template enrollment description into
46 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 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 50 Transform *transform = Factory<Transform>::make("." + str);
55 51  
56 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 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 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 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 73 If you are familiar with face recognition, you will likely recognize this as the Eigenfaces \cite turk1991eigenfaces algorithm.
78 74  
79 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 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 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 1 site_name: OpenBR
  2 +theme: readthedocs
  3 +
2 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 7 def subdirs(path):
8 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 16 def parse(group):
11 17 docs = re.compile('/\*\!(.*?)\*/', re.DOTALL)
12 18  
... ... @@ -44,18 +50,14 @@ def parseProperties(properties):
44 50  
45 51 def main():
46 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 55 for module in subdirs(plugins_dir):
55 56 if module == "cmake":
56 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 61 for plugin in subfiles(os.path.join(plugins_dir, module)):
60 62 f = open(os.path.join(os.path.join(plugins_dir, module), plugin), 'r')
61 63 content = f.read()
... ... @@ -68,10 +70,10 @@ def main():
68 70 continue
69 71  
70 72 output_file.write("---\n\n")
71   - output_file.write("#### " + attributes["Name"] + "\n\n")
  73 + output_file.write("# " + attributes["Name"] + "\n\n")
72 74 output_file.write(attributes["brief"][0] + "\n\n")
73 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 78 authors = attributes["author"]
77 79 if len(authors) > 1:
... ...
openbr/plugins/metadata/tester.cpp 0 → 100644
No preview for this file type