From ba994f4404b6eadcab4e0ead46ef4d3ffeceb024 Mon Sep 17 00:00:00 2001 From: Antoine Villeret Date: Thu, 10 Jul 2014 14:39:22 +0000 Subject: lots of changes ! 1. switch to a new build system based on automake (because we need to check for some lib on ./configure before make) 2. sort files in different directory 3. add some new features (some of them need OpenCV >= 2.4.5) svn path=/trunk/externals/pix_opencv/; revision=17324 --- src/pix_opencv_facetracker.h | 107 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 src/pix_opencv_facetracker.h (limited to 'src/pix_opencv_facetracker.h') diff --git a/src/pix_opencv_facetracker.h b/src/pix_opencv_facetracker.h new file mode 100644 index 0000000..407e468 --- /dev/null +++ b/src/pix_opencv_facetracker.h @@ -0,0 +1,107 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + Threshold filter + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2002 IOhannes m zmoelnig. forum::für::umläute. IEM. zmoelnig@iem.kug.ac.at + Copyright (c) 2002 James Tittle & Chris Clepper + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef INCLUDE_PIX_OPENCV_FACETRACKER_H_ +#define INCLUDE_PIX_OPENCV_FACETRACKER_H_ + +#ifndef _EiC +#include "opencv2/opencv.hpp" +#endif + +#include "FaceTracker/Tracker.h" + +#include "Base/GemPixObj.h" + +/*----------------------------------------------------------------- +------------------------------------------------------------------- +CLASS + pix_opencv_facetracker + + FaceTracker implementation + * see https://github.com/kylemcdonald/FaceTracker + +KEYWORDS + pix + +DESCRIPTION + +-----------------------------------------------------------------*/ +class GEM_EXPORT pix_opencv_facetracker : public GemPixObj +{ + CPPEXTERN_HEADER(pix_opencv_facetracker, GemPixObj) + + public: + + ////////// + // Constructor + pix_opencv_facetracker(); + + protected: + + ////////// + // Destructor + virtual ~pix_opencv_facetracker(); + + ////////// + // Do the processing + virtual void processImage(imageStruct &image); + + void resetMess(void); + void showMess(int); + void tableMess(t_symbol*xarray, t_symbol*yarray); + void clampMess(float arg); + void toleranceMess(float arg); + void filterMess(float arg); + + private: + + enum Feature { + LEFT_EYEBROW, RIGHT_EYEBROW, + LEFT_EYE, RIGHT_EYE, + LEFT_JAW, RIGHT_JAW, JAW, + OUTER_MOUTH, INNER_MOUTH, + NOSE_BRIDGE, NOSE_BASE, + FACE_OUTLINE, ALL_FEATURES + }; + + void Draw(cv::Mat &image,cv::Mat &shape,cv::Mat &con,cv::Mat &tri,cv::Mat &visi); + void OutputMesh(cv::Mat &image,cv::Mat &shape,cv::Mat &con,cv::Mat &tri,cv::Mat &visi); + std::vector getFeatureIndices(int feature); + + bool m_fcheck; + double m_scale; + int m_fpd; + bool m_show; + int m_nIter; + double m_clamp, m_fTol; + bool m_failed; + int m_fps; + int64 m_t1,m_t0; + int m_fnum; + bool m_taboutput; // enable table output + bool m_autoresize; // flag to resize table according to mesh size + + //set other tracking parameters + std::vector m_wSize1; + std::vector m_wSize2; + + t_outlet *m_dataout; // info outlet + FACETRACKER::Tracker m_tracker; + cv::Mat m_tri, m_con; + + t_symbol* m_arraysname[13]; + +}; +#endif // for header file -- cgit v1.2.1