本文介绍了在使用opencv-2.4.2安装pyopencv 2.1.0时遇到错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我用opencv-2.4.2安装pyopencv 2.1.0时遇到了一些错误,我的python版本是2.7.3,我的操作系统是OS X Mountain Lion,

I met some errors when I install pyopencv 2.1.0 with opencv-2.4.2, my python version is 2.7.3 and my os is OS X Mountain Lion,

并且下面的过程信息中,我发现一些错误表明重新定义了"Mat"类,但是我不知道如何解决它,请问有什么朋友可以帮助我吗?谢谢!

and the process information is below, I found some errors showed that the class 'Mat' is redefined, but I don't know how to fix it, does any friends could help me? thank!

sudo python setup.py install
running install
running bdist_egg
running egg_info
writing requirements to package/pyopencv.egg-info/requires.txt
writing package/pyopencv.egg-info/PKG-INFO
writing top-level names to package/pyopencv.egg-info/top_level.txt
writing dependency_links to package/pyopencv.egg-info/dependency_links.txt
reading manifest file 'package/pyopencv.egg-info/SOURCES.txt'
writing manifest file 'package/pyopencv.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.8-x86_64/egg
running install_lib
running build_py
creating build/lib.macosx-10.8-x86_64-2.7
creating build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/__init__.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/common.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/config.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cv_h.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cv_hpp.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cvaux.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cvtypes_h.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cvver_h.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cxcore_h.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cxcore_hpp.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cxcore_hpp_point.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cxcore_hpp_vec.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cxerror_h.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cxtypes_h.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/highgui.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/info.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/interfaces.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/ml.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/sdopencv.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
running build_ext
building 'pyopencv.pyopencv_extras' extension
creating build/temp.macosx-10.8-x86_64-2.7
creating build/temp.macosx-10.8-x86_64-2.7/package
creating build/temp.macosx-10.8-x86_64-2.7/package/extras
creating build/temp.macosx-10.8-x86_64-2.7/package/extras/core
creating build/temp.macosx-10.8-x86_64-2.7/package/extras/sdopencv
/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -pipe -O2 -fwrapv -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -dynamiclib -I/System/Library/Frameworks/Python.framework/Headers -I/opt/local/include -I/opt/local/include/opencv -I/opt/local/include -I~/Downloads/pyopencv-2.1.0.wr1.2.0/package -I~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras -I~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core -I~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include/numpy -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c package/extras/core/ndarray.cpp -o build/temp.macosx-10.8-x86_64-2.7/package/extras/core/ndarray.o -O3 -DNDEBUG
clang: warning: argument unused during compilation: '-dynamiclib'
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:58:13: error: 
      redefinition of 'Mat'
inline Mat::Mat()
            ^
/opt/local/include/opencv2/core/mat.hpp:67:13: note: previous definition is here
inline Mat::Mat() : size(&rows)
            ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:59:35: warning: 
      field 'step' will be initialized after field 'data' [-Wreorder]
    : flags(0), rows(0), cols(0), step(0), data(0), refcount(0), ...
                                  ^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:58:13: error: 
      constructor for 'cv::Mat' must explicitly initialize the member 'size'
      which does not have a default constructor
inline Mat::Mat()
            ^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
    MSize size;
          ^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
      declared here
    struct CV_EXPORTS MSize
                      ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:61:13: error: 
      redefinition of 'Mat'
inline Mat::Mat(int _rows, int _cols, int _type)
            ^
/opt/local/include/opencv2/core/mat.hpp:72:13: note: previous definition is here
inline Mat::Mat(int _rows, int _cols, int _type) : size(&rows)
            ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:62:35: warning: 
      field 'step' will be initialized after field 'data' [-Wreorder]
    : flags(0), rows(0), cols(0), step(0), data(0), refcount(0), ...
                                  ^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:61:13: error: 
      constructor for 'cv::Mat' must explicitly initialize the member 'size'
      which does not have a default constructor
inline Mat::Mat(int _rows, int _cols, int _type)
            ^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
    MSize size;
          ^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
      declared here
    struct CV_EXPORTS MSize
                      ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:68:13: error: 
      redefinition of 'Mat'
inline Mat::Mat(int _rows, int _cols, int _type, const Scalar& _s)
            ^
/opt/local/include/opencv2/core/mat.hpp:78:13: note: previous definition is here
inline Mat::Mat(int _rows, int _cols, int _type, const Scalar& _s) : size(&rows)
            ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:69:35: warning: 
      field 'step' will be initialized after field 'data' [-Wreorder]
    : flags(0), rows(0), cols(0), step(0), data(0), refcount(0),
                                  ^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:68:13: error: 
      constructor for 'cv::Mat' must explicitly initialize the member 'size'
      which does not have a default constructor
inline Mat::Mat(int _rows, int _cols, int _type, const Scalar& _s)
            ^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
    MSize size;
          ^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
      declared here
    struct CV_EXPORTS MSize
                      ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:79:13: error: 
      redefinition of 'Mat'
inline Mat::Mat(Size _size, int _type)
            ^
/opt/local/include/opencv2/core/mat.hpp:85:13: note: previous definition is here
inline Mat::Mat(Size _sz, int _type) : size(&rows)
            ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:80:35: warning: 
      field 'step' will be initialized after field 'data' [-Wreorder]
    : flags(0), rows(0), cols(0), step(0), data(0), refcount(0),
                                  ^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:79:13: error: 
      constructor for 'cv::Mat' must explicitly initialize the member 'size'
      which does not have a default constructor
inline Mat::Mat(Size _size, int _type)
            ^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
    MSize size;
          ^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
      declared here
    struct CV_EXPORTS MSize
                      ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:87:13: error: 
      redefinition of 'Mat'
inline Mat::Mat(Size _size, int _type, const Scalar& _s)
            ^
/opt/local/include/opencv2/core/mat.hpp:91:13: note: previous definition is here
inline Mat::Mat(Size _sz, int _type, const Scalar& _s) : size(&rows)
            ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:88:31: warning: 
      field 'step' will be initialized after field 'data' [-Wreorder]
: flags(0), rows(0), cols(0), step(0), data(0), refcount(0),
                              ^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:87:13: error: 
      constructor for 'cv::Mat' must explicitly initialize the member 'size'
      which does not have a default constructor
inline Mat::Mat(Size _size, int _type, const Scalar& _s)
            ^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
    MSize size;
          ^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
      declared here
    struct CV_EXPORTS MSize
                      ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:98:13: error: 
      redefinition of 'Mat'
inline Mat::Mat(const Mat& m)
            ^
/opt/local/include/opencv2/core/mat.hpp:111:13: note: previous definition is
      here
inline Mat::Mat(const Mat& m)
            ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:99:51: warning: 
      field 'step' will be initialized after field 'data' [-Wreorder]
    : flags(m.flags), rows(m.rows), cols(m.cols), step(m.step), data(m.data),
                                                  ^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:98:13: error: 
      constructor for 'cv::Mat' must explicitly initialize the member 'size'
      which does not have a default constructor
inline Mat::Mat(const Mat& m)
            ^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
    MSize size;
          ^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
      declared here
    struct CV_EXPORTS MSize
                      ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:106:13: error: 
      redefinition of 'Mat'
inline Mat::Mat(int _rows, int _cols, int _type, void* _data, size_t _step)
            ^
/opt/local/include/opencv2/core/mat.hpp:129:13: note: previous definition is
      here
inline Mat::Mat(int _rows, int _cols, int _type, void* _data, size_t _step)
            ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:108:5: warning: 
      field 'step' will be initialized after field 'data' [-Wreorder]
    step(_step), data((uchar*)_data), refcount(0),
    ^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:106:13: error: 
      constructor for 'cv::Mat' must explicitly initialize the member 'size'
      which does not have a default constructor
inline Mat::Mat(int _rows, int _cols, int _type, void* _data, size_t _step)
            ^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
    MSize size;
          ^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
      declared here
    struct CV_EXPORTS MSize
                      ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:126:13: error: 
      redefinition of 'Mat'
inline Mat::Mat(Size _size, int _type, void* _data, size_t _step)
            ^
/opt/local/include/opencv2/core/mat.hpp:151:13: note: previous definition is
      here
inline Mat::Mat(Size _sz, int _type, void* _data, size_t _step)
            ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:128:5: warning: 
      field 'step' will be initialized after field 'data' [-Wreorder]
    step(_step), data((uchar*)_data), refcount(0),
    ^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:126:13: error: 
      constructor for 'cv::Mat' must explicitly initialize the member 'size'
      which does not have a default constructor
inline Mat::Mat(Size _size, int _type, void* _data, size_t _step)
            ^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
    MSize size;
          ^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
      declared here
    struct CV_EXPORTS MSize
                      ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:146:13: error: 
      constructor for 'cv::Mat' must explicitly initialize the member 'size'
      which does not have a default constructor
inline Mat::Mat(const Mat& m, const Range& rowRange, const Range& colRange)
            ^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
    MSize size;
          ^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
      declared here
    struct CV_EXPORTS MSize
                      ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:149:10: error: 
      'operator=' is a protected member of 'cv::Mat::MStep'
    step = m.step; refcount = m.refcount;
    ~~~~ ^ ~~~~~~
/opt/local/include/opencv2/core/core.hpp:1958:16: note: declared protected here
        MStep& operator = (const MStep&);
               ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:182:5: warning: 
      field 'step' will be initialized after field 'data' [-Wreorder]
    step(m.step), data(m.data + roi.y*step), refcount(m.refcount),
    ^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:180:13: error: 
      constructor for 'cv::Mat' must explicitly initialize the member 'size'
      which does not have a default constructor
inline Mat::Mat(const Mat& m, const Rect& roi)
            ^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
    MSize size;
          ^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
      declared here
    struct CV_EXPORTS MSize
                      ^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:197:35: warning: 
      field 'step' will be initialized after field 'data' [-Wreorder]
    rows(m->rows), cols(m->cols), step(m->step), data(m->data.ptr), refcount(0),
                                  ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
10 warnings and 20 errors generated.
error: command '/usr/bin/clang' failed with exit status 1

推荐答案

根据pyopencv的第47期,似乎与OpenCV 2.3.1或更高版本不兼容.

According to Issue 47 of pyopencv, OpenCV 2.3.1 or later seems not compatible with it.

http://code.google.com/p/pyopencv/issues/detail?id = 47

考虑尝试使用cv2.so而不是pyopencv.

Consider trying cv2.so instead of pyopencv.

在我的山狮上工作还不错.请务必按照本说明进行一些符号链接.

It worked quite fine on my Mountain Lion.Be sure to make some symbolic link described in this instruction.

https://github.com/ingenuitas/SimpleCV#installation

玩得开心!

这篇关于在使用opencv-2.4.2安装pyopencv 2.1.0时遇到错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-16 03:56