1 #ifndef FACE_SWAP_UTILITIES_H 2 #define FACE_SWAP_UTILITIES_H 4 #include "face_swap/basel_3dmm.h" 5 #include <opencv2/core.hpp> 16 cv::Mat euler2RotMat(
float x,
float y,
float z);
18 cv::Mat euler2RotMat(
const cv::Mat& euler);
20 cv::Mat createModelView(
const cv::Mat& euler,
const cv::Mat& translation);
22 cv::Mat createOrthoProj4x4(
const cv::Mat& euler,
const cv::Mat& translation,
23 int width,
int height);
25 cv::Mat createOrthoProj3x4(
const cv::Mat& euler,
const cv::Mat& translation,
26 int width,
int height);
28 cv::Mat createPerspectiveProj3x4(
const cv::Mat& euler,
29 const cv::Mat& translation,
const cv::Mat& K);
31 void renderWireframe(cv::Mat& img,
const Mesh& mesh,
const cv::Mat& P,
32 float scale = 1,
const cv::Scalar& color = cv::Scalar(0, 255, 0));
34 void renderWireframe(cv::Mat& img,
const Mesh& mesh,
35 const cv::Mat& rvec,
const cv::Mat& tvec,
const cv::Mat& K,
36 float scale = 1,
const cv::Scalar& color = cv::Scalar(0, 255, 0));
38 void renderWireframeUV(cv::Mat& img,
const Mesh& mesh,
const cv::Mat& uv,
39 const cv::Scalar& color = cv::Scalar(0, 255, 0));
41 void renderBoundary(cv::Mat& img,
const Mesh& mesh,
42 const cv::Mat& rvec,
const cv::Mat& tvec,
const cv::Mat& K,
43 const cv::Scalar& color = cv::Scalar(255, 0, 0));
45 bool is_ccw(
const cv::Point2f& p1,
const cv::Point2f& p2,
const cv::Point2f& p3);
47 inline unsigned int nextPow2(
unsigned int x)
58 cv::Mat computeFaceNormals(
const Mesh& mesh);
60 cv::Mat computeVertexNormals(
const Mesh& mesh);
64 #endif // FACE_SWAP_UTILITIES_H Definition: basel_3dmm.h:9