Есть такая вот структурка
struct ImageWithData{
cv::Mat img;
std::vector <cv::Rect> faces;
std::vector <cv::Point2f> points;
};
void initStorage(VideoCapture capture,vector <ImageWithData> storage,string cascade_filename) {
Mat frame;
std::vector< cv::Point2f > points;
vector <cv::Rect> faces;
while (frame.empty()) capture >> frame;
while(points.empty()){
faces = DetectHaarOnImage(frame, cascade_filename);
cv::Mat mask = getMaskByRectangleArray(frame, faces);
points = gF2T(frame, mask);
}
SaveImg(storage, frame, faces, points);
}
void SaveImg(vector <ImageWithData> storage, cv::Mat img,
std::vector <cv::Rect> faces,
std::vector <cv::Point2f> points = std::vector <cv::Point2f>()){
ImageWithData s;
img.copyTo(s.img);
s.faces.assign(faces.begin(),faces.end());
s.points.assign(points.begin(),points.end());
storage.push_back(s);
if (storage.size() > 10)
storage.erase(storage.begin());
}