FaceRecognizer类
OpenCV中所有人脸识别的模型都是继承自FaceRecognizer这个基类,这个类提供了人脸识别算法的统一接口。
class FaceRecognizer : public Algorithm { public: //! virtual destructor virtual ~FaceRecognizer() {} // Trains a FaceRecognizer. virtual void train(InputArray src, InputArray labels) = 0; // Updates a FaceRecognizer. virtual void update(InputArrayOfArrays src, InputArray labels); // Gets a prediction from a FaceRecognizer. virtual int predict(InputArray src) const = 0; // Predicts the label and confidence for a given sample. virtual void predict(InputArray src, int &label, double &confidence) const = 0; // Serializes this object to a given filename. virtual void save(const string& filename) const; // Deserializes this object from a given filename. virtual void load(const string& filename); // Serializes this object to a given cv::FileStorage. virtual void save(FileStorage& fs) const = 0; // Deserializes this object from a given cv::FileStorage. virtual void load(const FileStorage& fs) = 0; };
Algorithm类
Algorithm所有的派生类都提供了一下功能:
- 虚拟构造器。每个继承Algorithm的算法在程序开始时注册,你可以得到已注册算法的列表,并且根据指定算法名字来创建一个实例。如果你想添加自己的算法,比较好的方法是在你算法名上添加一个前缀,以示区别。(详见Algorithm::create())
- 通过参数名来设置或检索参数。Algorithm可以通过你指定参数名字符串来提供这样的功能。(详见Algorithm::set()、Algorithm::get())
- 从XML或YAML文件中读写参数。每个算法都可以将参数写到文件中,并且在需要时读出参数。