Aligning and blending face elements
The rest of our app's functionality is in the implementation of the Face
class. Create a new file, Face.cpp
. Remember that Face
has a species, matrix of image data, and coordinates for the centers of the eyes and tip of the nose. Also remember that we designed Face
as an immutable type, and for this reason the constructor copies a given matrix rather than storing a reference to external data. At the start of Face.cpp
, let's implement the constructor that takes a species, matrix, and feature points as arguments:
#include <opencv2/imgproc.hpp> #include "Face.h" Face::Face(Species species, const cv::Mat &mat, const cv::Point2f &leftEyeCenter, const cv::Point2f &rightEyeCenter, const cv::Point2f &noseTip) : species(species) , leftEyeCenter(leftEyeCenter) , rightEyeCenter(rightEyeCenter) , noseTip(noseTip) { mat.copyTo(this->mat); }
Face
also has the following default constructor for an empty face:
Face::Face() { }
The following...