kylemcdonald / FaceTracker

Real time deformable face tracking in C++ with OpenCV 3.
MIT License
1k stars 360 forks source link

MacOSX10.14 Build Errors in CLM.cc #55

Open Andy-2S opened 4 years ago

Andy-2S commented 4 years ago

When building on macOS , I'm getting the following errors from CLM.cc related to not finding copy constructors.

g++ -Wextra -Wall  -O3 -Wno-long-long  -c -o src/lib/CLM.o src/lib/CLM.cc -I/usr/local/include/include -Iinclude/
src/lib/CLM.cc:246:13: error: no viable conversion from 'cv::Mat' to 'CvMat'
      CvMat wimg_o = wimg,sim_o = sim; IplImage im_o = im;
            ^        ~~~~
/usr/local/include/opencv2/core/types_c.h:464:16: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'cv::Mat' to 'const CvMat &' for 1st argument
typedef struct CvMat
               ^
/usr/local/include/opencv2/core/mat.hpp:1666:28: note: candidate template ignored: could not match 'vector<type-parameter-0-0, allocator<type-parameter-0-0> >' against 'CvMat'
    template<typename _Tp> operator std::vector<_Tp>() const;
                           ^
/usr/local/include/opencv2/core/mat.hpp:1667:35: note: candidate template ignored: could not match 'Vec<type-parameter-0-0, cn>' against 'CvMat'
    template<typename _Tp, int n> operator Vec<_Tp, n>() const;
                                  ^
/usr/local/include/opencv2/core/mat.hpp:1668:42: note: candidate template ignored: could not match 'Matx<type-parameter-0-0, m, n>' against 'CvMat'
    template<typename _Tp, int m, int n> operator Matx<_Tp, m, n>() const;
                                         ^
src/lib/CLM.cc:246:27: error: no viable conversion from 'cv::Mat' to 'CvMat'
      CvMat wimg_o = wimg,sim_o = sim; IplImage im_o = im;
                          ^       ~~~
/usr/local/include/opencv2/core/types_c.h:464:16: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'cv::Mat' to 'const CvMat &' for 1st argument
typedef struct CvMat
               ^
/usr/local/include/opencv2/core/mat.hpp:1666:28: note: candidate template ignored: could not match 'vector<type-parameter-0-0, allocator<type-parameter-0-0> >' against 'CvMat'
    template<typename _Tp> operator std::vector<_Tp>() const;
                           ^
/usr/local/include/opencv2/core/mat.hpp:1667:35: note: candidate template ignored: could not match 'Vec<type-parameter-0-0, cn>' against 'CvMat'
    template<typename _Tp, int n> operator Vec<_Tp, n>() const;
                                  ^
/usr/local/include/opencv2/core/mat.hpp:1668:42: note: candidate template ignored: could not match 'Matx<type-parameter-0-0, m, n>' against 'CvMat'
    template<typename _Tp, int m, int n> operator Matx<_Tp, m, n>() const;
                                         ^
src/lib/CLM.cc:246:49: error: no viable conversion from 'cv::Mat' to 'IplImage' (aka '_IplImage')
      CvMat wimg_o = wimg,sim_o = sim; IplImage im_o = im;
                                                ^      ~~
/usr/local/include/opencv2/core/types_c.h:327:1: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'cv::Mat' to 'const _IplImage &' for 1st argument
_IplImage
^
/usr/local/include/opencv2/core/mat.hpp:1666:28: note: candidate template ignored: could not match 'vector<type-parameter-0-0, allocator<type-parameter-0-0> >' against '_IplImage'
    template<typename _Tp> operator std::vector<_Tp>() const;
                           ^
/usr/local/include/opencv2/core/mat.hpp:1667:35: note: candidate template ignored: could not match 'Vec<type-parameter-0-0, cn>' against '_IplImage'
    template<typename _Tp, int n> operator Vec<_Tp, n>() const;
                                  ^
/usr/local/include/opencv2/core/mat.hpp:1668:42: note: candidate template ignored: could not match 'Matx<type-parameter-0-0, m, n>' against '_IplImage'
    template<typename _Tp, int m, int n> operator Matx<_Tp, m, n>() const;
                                         ^
3 errors generated.
make: *** [src/lib/CLM.o] Error 1
GHLab commented 4 years ago

Use cvIplImage(im) and if you get this error error: no viable conversion from 'cv::Mat' to 'CvMat' You can use cvMat(wimg) Check my project if you get the other error. https://github.com/GHLab/QT_FACE_TRACKER_DEMO