使用opencv3调用surf、sift时发现没有安装包报错,查询后需要安装opencv_contrib,解释一下opencv_contrib里面有opencv3的扩展(比如surf、sift),也是opencv2和opencv3的区别.所以opencv3.x.x和opencv_contrib要重新都编译一下。
这里我安装的openCV3.4.3,需要下载openCV3.4.3+opencv_contrib3.4.3
1、下载地址:
openCV3.4.3 链接: https://pan.baidu.com/s/1TQrbEE_uXEYDJ_0Diy4pqA 密码: tqlq
opencv_contrib3.4.3 链接:https://pan.baidu.com/s/1odBh9xx9m_IwbMO_FAkuOw 提取码:ot9u
2、安装依赖:
首先,更新软件源,更新本地安装包:
$ sudo apt-get install build-essential cmake git pkg-config $ sudo apt-get install libjpeg8-dev $ sudo apt-get install libtiff5-dev $ sudo apt-get install libjasper-dev //此处可能会报错,百度吧,不难 $ sudo apt-get install libpng12-dev $ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev $ sudo apt-get install libgtk2.0-dev $ sudo apt-get install libatlas-base-dev gfortran $ sudo apt-get install python-dev python3-dev
3、编译
解压opencv-3.4.3和opencv_contrib-3.4.3压缩包并进入opencv-3.4.3文件夹:。
$ unzip opencv-3.4.3.zip $ cd opencv-3.4.3
在opencv-3.4.3文件夹里新建一个文件夹,命名release,用来存放cmake编译时产生的临时文件。进入release:
$ mkdir release $ cd release
接下来开始安装前的配置文件, 每次用到opencv有关的新东西都会重新补全编译一次,接下来是我目前的操作。
设置cmake编译参数,安装目录默认为/usr/local ,注意参数名、等号和参数值之间不能有空格,但每行末尾“\”之前有空格,参数值最后是两个英文的点(注意!如果在root用户下执行cmake命令,请将OPENCV_EXTRA_MODULES_PATH的值改为绝对路径,如:/home/ubuntu/opencv_contrib-3.4.3/modules):
sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.3/modules \ -D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON \ -D OPENCV_ENABLE_NONFREE:BOOL=ON \ -D BUILD_opencv_world:BOOL=ON \ -D BUILD_EXAMPLES=ON ..
最漫长的开始了正式编译:
在release文件夹中执行,编译,以管理员身份,否则容易出错
$ sudo make -j12 //以12线程编译 具体数字看电脑线程最高配置,一般4,8,12
编译完成后安装
$ sudo make install
更新动态链接库
$ sudo ldconfig
4、安装完成后配置环境变量
将OPenCV的库添加到路径,从而可以让系统找到
sudo gedit /etc/ld.so.conf.d/opencv.conf //这里用的gedit图形界面编译器
执行此命令后打开的可能是一个空白文档,并更新动态链接库
$ /usr/local/lib
配置bash
$ sudo gedit /etc/bash.bashrc
在文件最后换行添加以下命令
$ PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig $ export PKG_CONFIG_PATH
保存,执行以下使得配置生效
$ source /etc/bash.bashrc
最后更新
$ sudo updatedb
此处应该放礼花💐,tiu dang 安装完成可以使用了
自己找个例程试一试吧