在OS X中安装OpenCV 2.3(新版本)时出现问题



我注意到昨天发布了一个新版本的OpenCV, v2.3。

我无法在我的Mac上安装这个版本,使用cmake和基本指令编译Linux的源代码&Unix .

当我执行make指令时,我得到了这个错误信息:
/Users/jorgevegasanchez/Downloads/OpenCV-2.3.0/modules/highgui/src/cap.cpp: In function ‘CvCapture* cvCreateCameraCapture(int)’:
/Users/jorgevegasanchez/Downloads/OpenCV-2.3.0/modules/highgui/src/cap.cpp:130: error: ‘CV_CAP_OPENNI’ was not declared in this scope
/Users/jorgevegasanchez/Downloads/OpenCV-2.3.0/modules/highgui/src/cap.cpp:131: error: ‘CV_CAP_ANDROID’ was not declared in this scope
make[2]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/src/cap.o] Error 1
make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2
make: *** [all] Error 2

使用cmake安装OpenCV 2.2没有问题。我认为OSX版本的OpenCV 2.3版本有错误或错误。还是我做错了什么?

您可能已经安装了以前版本的opencv2。检查/opt/local/include/opt/local/lib。如果是这种情况,当您尝试编译openv2.3时,这些位置可能优先于您的系统PATH,从而导致上述错误。要么删除旧的opencv版本,要么在编译新版本时暂时从上述文件夹中移动与opencv2相关的内容

我不确定你的构建不会有任何更多的错误,但一个快速的hack是保护#ifdef块上的这些常数。

转到出现错误的行,注意这两个常量用于初始化名为domainsint数组。你可以把它的定义改成:

    int  domains[] =
    {   
#ifdef HAVE_VIDEOINPUT
        CV_CAP_DSHOW,
#endif
        CV_CAP_IEEE1394,   // identical to CV_CAP_DC1394
        CV_CAP_STEREO,
        CV_CAP_PVAPI,
        CV_CAP_VFW,        // identical to CV_CAP_V4L
        CV_CAP_MIL,
        CV_CAP_QT,
        CV_CAP_UNICAP,
#ifdef HAVE_OPENNI
        CV_CAP_OPENNI,
#endif
#ifdef HAVE_ANDROID_NATIVE_CAMERA
        CV_CAP_ANDROID,
#endif
        -1  
    };

这将修复这些特定的错误,希望你不会有其他的。

编辑:

我刚刚下载了OpenCV 2.3,并使用标准程序编译它,一切都很好。没有错误!

tar -xjvf OpenCV-2.3.0.tar.bz2
cd OpenCV-2.3.0
mkdir build
cd build/
cmake ../
make
sudo make install

您可能已经安装了以前版本的opencv2。检查/opt/local/include和/opt/local/lib。如果是这样的话,这些位置可能优先于您的系统PATH编译导致上述错误的opencv2.3。要么去掉旧的Opencv版本或暂时移动与opencv2相关的当你编译新版本时,上面提到的文件夹

谢谢。它现在在Mac 10.6.8下使用OpenCV 2.3.1运行良好

Update:

sudo port install cmake

相关内容

  • 没有找到相关文章

最新更新