安装opencv和opencv_contrib ubuntu16.04 & ubuntu14.04

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39675633/article/details/82318491

踩了好多坑,写下来,避免其他人跟我一样:

单独安装opencv相信大家都没有问题,但同时安装opencv_contrib时,可能就会出现各种问题,如下面的几个问题:

  • ‘class cv::String’ has no member named ‘assign’, value->assign(buf.data(), size);
  • error: ‘class cv::AutoBuffer’ has no member named ‘data’, float * const wc = _wc.data();
  • ‘cv::kinfu::Params::PlatformType’ is not a class or namespace

这些问题,对于初学者经常碰到,总结一下原因主要有下面两个:

  • 没有通过git clone 命令克隆下载opencvopencv_contrib 两个库,而是通过压缩形式下载的。
  • 使用的opencv版本与opencv_contrib版本不一致,这个需要注意,坑了我许久.

下面给出具体操作步骤:

  • 克隆opencvopencv_contrib
  git clone https://github.com/opencv/opencv.git
  cd opencv
  git clone https://github.com/opencv/opencv_contrib.git

经过上面两个步骤后,在opencv中会有一个你先添加到的opencv_contrib文件夹

  • 查看oepncvopencv_contrib的版本
git checkout [按tab键]  #将得到类似下面的版本
2.2                    2.4.10.4               2.4.13.4               2.4.4-beta             2.4.7.2                3.0.0-beta             3.3.1                  3.4.3-openvino 
2.3.0                  2.4.11                 2.4.13.5               2.4.5                  2.4.7-rc1              3.0.0-rc1              3.3.1-cvsdk            FETCH_HEAD 
2.3.1                  2.4.12                 2.4.13.6               2.4.6                  2.4.8                  3.0-ocl-tech-preview   3.4                    HEAD 
2.4                    2.4.12.1               2.4.13.7               2.4.6.1                2.4.8.1                3.0-ocl-tp2            3.4.0                  master 
2.4.0                  2.4.12.2               2.4.2                  2.4.6.2                2.4.8.2                3.1.0                  3.4.0-rc               origin/2.4 
2.4.1                  2.4.12.3               2.4.3                  2.4.6.2r2              2.4.8.3                3.2.0                  3.4.1                  origin/3.4 
2.4.10                 2.4.13                 2.4.3.1                2.4.6.2r3              2.4.9                  3.2.0-rc               3.4.1-cvsdk            origin/HEAD 
2.4.10.1               2.4.13.1               2.4.3.2                2.4.6.2-rc1            2.4.9.1                3.3.0                  3.4.2                  origin/master 
2.4.10.2               2.4.13.2               2.4.3-rc               2.4.7                  3.0.0                  3.3.0-cvsdk            3.4.2-openvino         
2.4.10.3               2.4.13.3               2.4.4                  2.4.7.1                3.0.0-alpha            3.3.0-rc               3.4.3                  

git checkout 3.4.2 # 选择一个版本,例如这里我选择3.4.2版本,当然你也可以选择其他版本

cd opencv_contrib
git checkout [按tab键] 
3.0.0           3.0.0-rc1       3.2.0           3.3.0           3.3.1           3.4.0           3.4.2           FETCH_HEAD      master          origin/3.4      origin/master   
3.0.0-beta      3.1.0           3.2.0-rc        3.3.0-rc        3.4             3.4.1           3.4.3           HEAD            ORIG_HEAD       origin/HEAD     

git checkout 3.4.2 #这里选择3.4.2版本,需要注意的是,opencv_contrib的版本必须与opencv的对应版本一样
  • 编译opencvopencv_contrib
cd opencv
mkdir build
cd build
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -DCVV_DEBUG_MODE=ON DBUILD_opencv_CVV=ON -DWITH_cvv:bool=ON -DWITH_QT=ON  CMAKE_CXX_FLAGS=-std=c11 ..
make -j4
sudo make install #默认将opencv安装到/usr/local路径下
  • 卸载opencv (可选)
cd opencv/build
sudo make uninstall

猜你喜欢

转载自blog.csdn.net/weixin_39675633/article/details/82318491