ubuntu16.04+opencv-3.1.0+opencv_contrib-3.1.0安装教程及报错问题解决

环境:ubuntu16.04

所需:opencv-3.1.0和opencv_contrib-3.1.0(注意:两者版本必须匹配,可以在github上clone相关版本)

接下来开始安装

1.

将下载好的opencv-3.1.0解压到任意文件夹,如home。

2.

将opencv_contrib-3.1.0解压并拷贝到opencv-3.1.0文件夹内。

3.

打开终端并进入opencv-3.1.0文件夹内:cd ~/opencv-3.1.0

4.

mkdir build

5.

cd build

6.

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv-3.1.0/opencv_contrib-3.1.0/modules/ ..
7.

make

8.

sudo make install

以上步骤通常会遇到如下错误:

1.在cmake阶段会由于网络问题可能出现ippicv_linux_20151201.tgz无法在终端下载的情况,则可以先单独下载ippicv_linux_20151201.tgz之后,把其移动到终端所提示的路径(终端会提示该路径找不到文件)。

2.在make阶段可能会报错如下:fatal error hdf5.h no such file or directory

解决办法:
在opencv-3.1.0/modules/python/common.cmake首行添加如下代码:

find_package(HDF5)
include_directories(${HDF5_INCLUDE_DIRS})

3.还有可能出现如下报错:

[ 98%] Building CXX object modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o
In file included from /home/epinux/dev/opencv_contrib/modules/tracking/include/opencv2/tracking/tracker.hpp:48:0,
                 from /home/epinux/dev/opencv/build2/modules/python2/pyopencv_generated_include.h:50,
                 from /home/epinux/dev/opencv/modules/python/src2/cv2.cpp:12:
/home/epinux/dev/opencv_contrib/modules/tracking/include/opencv2/tracking/onlineMIL.hpp:57:23: error: expected unqualified-id before ‘>’ token
 #define  sign(s)  ((s > 0 ) ? 1 : ((s<0) ? -1 : 0))
                       ^
/home/epinux/dev/opencv_contrib/modules/tracking/include/opencv2/tracking/onlineMIL.hpp:57:23: error: expected ‘)’ before ‘>’ token
/home/epinux/dev/opencv_contrib/modules/tracking/include/opencv2/tracking/onlineMIL.hpp:57:23: error: expected ‘)’ before ‘>’ token
modules/python2/CMakeFiles/opencv_python2.dir/build.make:296: recipe for target 'modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o' failed
make[2]: *** [modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o] Error 1
CMakeFiles/Makefile2:13133: recipe for target 'modules/python2/CMakeFiles/opencv_python2.dir/all' failed
make[1]: *** [modules/python2/CMakeFiles/opencv_python2.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

解决方法如下:

打开问题文件 gedit ~/opencv-3.1.0/opencv_contrib-3.1.0/modules/tracking/include/opencv2/tracking/onlineMIL.hpp

修改代码

找到下面这一行

#define sign(a) a > 0 ? 1 : a == 0 ? 0 : -1

替换为

namespace

{

template<typename T>  CV_INLINE int sign(const T v)

{

return (v > 0) ? 1 : ((v < 0) ? -1 : 0);

}

} // anon namespace

然后重新make

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值