Minimum Average Correlation Energy Filter useful for authentication with (cancellable) biometrical features. (does not need many positives to train (10-50), and no negatives at all, also robust to noise/salting)  
 More...
|  | 
| virtual void | salt (const cv::String &passphrase)=0 | 
|  | optionally encrypt images with random convolution  More... 
 | 
|  | 
| virtual bool | same (cv::InputArray query) const =0 | 
|  | correlate query img and threshold to min class value  More... 
 | 
|  | 
| virtual void | train (cv::InputArrayOfArrays images)=0 | 
|  | train it on positive features compute the mace filter: h = D(-1) * X * (X(+) * D(-1) * X)(-1) * Calso calculate a minimal threshold for this class, the smallest self-similarity from the train images  More...
 | 
|  | 
|  | Algorithm () | 
|  | 
| virtual | ~Algorithm () | 
|  | 
| virtual void | clear () | 
|  | Clears the algorithm state.  More... 
 | 
|  | 
| virtual bool | empty () const | 
|  | Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read.  More... 
 | 
|  | 
| virtual String | getDefaultName () const | 
|  | 
| virtual void | read (const FileNode &fn) | 
|  | Reads algorithm parameters from a file storage.  More... 
 | 
|  | 
| virtual void | save (const String &filename) const | 
|  | 
| virtual void | write (FileStorage &fs) const | 
|  | Stores algorithm parameters in a file storage.  More... 
 | 
|  | 
| void | write (const Ptr< FileStorage > &fs, const String &name=String()) const | 
|  | simplified API for language bindings This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.  More... 
 | 
|  | 
Minimum Average Correlation Energy Filter useful for authentication with (cancellable) biometrical features. (does not need many positives to train (10-50), and no negatives at all, also robust to noise/salting) 
see also: [213]
this implementation is largely based on: https://code.google.com/archive/p/pam-face-authentication (GSOC 2009)
use it like: 
vector<Mat> pos_images = ...
mace->train(pos_images);
Mat query = ...
bool 
same = mace->same(query);
you can also use two-factor authentication, with an additional passphrase:
String owners_passphrase = 
"ilikehotdogs";
 mace->salt(owners_passphrase);
vector<Mat> pos_images = ...
mace->train(pos_images);
Mat query = ...
cout << "enter passphrase: ";
string pass;
getline(cin, pass);
mace->salt(pass);
bool same = mace->same(query);
 save/load your model: 
mace->train(pos_images);
mace->save("my_mace.xml");
reloaded->same(some_image);