安装 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 ..
简直太坑了 =_=
解决了上述问题后,紧接着在执行
make
命令编译 opencv 的时候又遇到了下一个错误,大概和下面这个长得差不多:1
2
3
4
5
6
7Linking 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
,问题解决~最后,顺利安装好 opencv3 和 opencv_contrib 后,尝试opencv自带的python的例子程序:
1
2cd <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,然后重新来过。。。