1

opencv-2.4.2を使用してpyopencv2.1.0をインストールすると、いくつかのエラーが発生しました。Pythonのバージョンは2.7.3で、OSはOS XMountainLionです。

プロセス情報は以下のとおりです。クラス「Mat」が再定義されていることを示すエラーがいくつか見つかりましたが、修正方法がわかりません。友達が私を助けてくれますか?感謝!

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
4

1 に答える 1

3

pyopencv の Issue 47 によると、OpenCV 2.3.1 以降には対応していないようです。

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

pyopencv の代わりに cv2.so を試すことを検討してください。

私のMountain Lionでは問題なく動作しました。この説明書に記載されているシンボリックリンクを必ず作成してください。

https://github.com/ingenuitas/SimpleCV#インストール

楽しむ!

于 2012-11-06T14:10:22.257 に答える