版权声明:本文为博主原创文章,未经博主允许不得转载。 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
命令克隆下载opencv
和opencv_contrib
两个库,而是通过压缩形式下载的。 - 使用的
opencv
版本与opencv_contrib
版本不一致,这个需要注意,坑了我许久.
下面给出具体操作步骤:
- 克隆
opencv
和opencv_contrib
库
git clone https://github.com/opencv/opencv.git
cd opencv
git clone https://github.com/opencv/opencv_contrib.git
经过上面两个步骤后,在opencv
中会有一个你先添加到的opencv_contrib
文件夹
- 查看
oepncv
和opencv_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的对应版本一样
- 编译
opencv
和opencv_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