Antal.Ai - Virtual Makeup
Engine.h
1 #pragma once
2 #include <iostream>
3 #include <opencv2/imgcodecs.hpp>
4 #include "CvUtils.h"
5 #include "FaceDrawer.h"
6 #include "FaceDetectorYunet.h"
7 #include "FaceMesh.h"
8 
17 class Engine
18 {
19 public:
23  Engine() {}
24 
28  ~Engine() {}
29 
34  void init(std::string resourcePath);
35 
45  void process(cv::Mat& input, cv::Mat& output);
46 
54  void addSigno(cv::Mat& image);
55 
56 private:
57 
61  std::string faceVerticesPath;
62 
66  std::string makeupTemplatePath;
67 
71  std::string makeupMaskPath;
72 
77 
81  visualization::FaceDrawer faceDrawer;
82 
86  core::face::FaceMesh faceMesh;
87 
88  cv::Mat makeupTemplateImage;
89  cv::Mat makeupMaskImage;
90  cv::Rect imageRect;
91  std::vector<core::Detection> makeupDets{ {1.0,1,"Face",cv::Rect(225,166,350,500)} };
92 };
Core utilities for image and math operations using OpenCV.
Header file for FaceDrawer class.
Main engine class for processing images and applying visual features.
Definition: Engine.h:18
void init(std::string resourcePath)
Initializes the engine with the specified resource path.
Definition: Engine.cpp:45
void addSigno(cv::Mat &image)
Adds a watermark (signo) to the specified image.
Definition: Engine.cpp:20
Engine()
Default constructor for the Engine class.
Definition: Engine.h:23
~Engine()
Destructor for the Engine class.
Definition: Engine.h:28
void process(cv::Mat &input, cv::Mat &output)
Processes an input image and produces an output image.
Definition: Engine.cpp:107
Face detection class utilizing OpenCV's FaceDetectorYN model with DNN support.
Definition: FaceDetectorYunet.h:18
A class responsible for initializing, configuring, and processing face mesh detection using neural ne...
Definition: FaceMesh.h:16
Draws triangulation on faces based on facial points.
Definition: FaceDrawer.h:41