安装 OpenCV3

  1. 安装 opencv3 的时候遇到了一个错误,在 cmake 的时候会报出 Unknown CMake command "ocv_add_testdata" 等一堆错误,大概情况和 这个说的差不多,折腾了一上午加半个下午才找出问题所在:执行命令时拓展模块的路径参数应该是相对路径而不是绝对路径,也就是应该把
    cmake -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..
    改为
    cmake -D OPENCV_EXTRA_MODULES_PATH=opencv_contrib/modules ..

    简直太坑了 =_=

  2. 解决了上述问题后,紧接着在执行 make 命令编译 opencv 的时候又遇到了下一个错误,大概和下面这个长得差不多:

    1
    2
    3
    4
    5
    6
    7
    Linking CXX shared library ../../lib/libopencv_imgproc.so
    /usr/bin/ld: ../../../3rdparty/ippicv/unpack/ippicv_lnx/lib/ia32/libippicv.a(jmp_ippiResizeGetBufferSize_16s_as.s.o): relocation R_386_GOTOFF against undefined symbol `ippicvJumpIndexForMergedLibs' can not be used when making a shared object
    /usr/bin/ld: final link failed: Bad value
    collect2: ld returned 1 exit status
    make[2]: *** [lib/libopencv_imgproc.so.3.0.0] Error 1
    make[1]: *** [modules/imgproc/CMakeFiles/opencv_imgproc.dir/all] Error 2
    make: *** [all] Error 2

    通过搜索,有个作者说:

    如果出现这个错误,就是因为IPP的原因,一般都不用IPP,所以可以编译的时候直接禁用 WITH_IPP = OFF设置

    于是我在 cmake 时 添加了 -D  WITH_IPP=OFF ,问题解决~

  3. 最后,顺利安装好 opencv3 和 opencv_contrib 后,尝试opencv自带的python的例子程序:

    1
    2
    cd <opencv3.0.0_dir>/samples/python/
    python asift.py

    然后又报错了 =_= ,AttributeError: 'module' object has no attribute 'xfeatures2d' ,然后发现我的 opencv3 是在官网下的(因为 git 太慢了),而 opencv_contrib 是 git 的,所以出现了错误。。。解决的办法就是卸载已经装好的 opencv3.0.0,然后 git 最新的 opencv3,然后重新来过。。。