近期做实验发现安装了高版本的opencv(3以上),其中SIFT,SURF算子的算法不包含在内,搜索相关博客,找到答案,做个标记!
据官方说法,目前还不是太稳定的算法模块都在opencv_contrib里边,由于不稳定,所以不能在release版本里发行,只有在稳定以后才会放进release里边。但是这里边有很多我们经常要用的算法,比如SIFT,SURF等(在xfeatures2d 模块里边)。官网提供了说明,可以把opencv_contrib扩展模块添加编译到已安装的opencv3.0.0里边,也可以安装的时候直接把扩展模块编译进去一并安装。
转自:https://blog.csdn.net/zhuquan945/article/details/52784890
同时参考见: https://blog.csdn.net/CupidYzw97/article/details/74857467
1.依赖关系:
GCC 4.4.x or later
CMake 2.8.7 or higher
Git
GTK+2.x or higher, including headers (libgtk2.0-dev)
pkg-config
Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
[optional] libtbb2 libtbb-dev
[optional] libdc1394 2.x
[optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
注:官方文档中虽然说其中一些依赖包是可选的,但是最好还是都装上,以防出问题。
以上依赖包可用以下命令安装:
1sudo apt-get install build-essential
2sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
3sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
2.下载源码:
a.可以从opencv官网直接下载:http://opencv.org/downloads.html
b.也可以:
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
3.CMake Opencv源码:
建立一个编译目录(例如:/build)把cmake后的文件都放在这里边。
cd opencv-3.4.1
mkdir build
cd build
然后开始cmake,这里需要注意几个cmake的参数,比较重要。
1
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib-3.4.1/modules/> …
注:命令中最后的" … "(空格+两个点)千万不要忘记
其中 CMAKE_BUILD_TYPE=Release / Debug
OPENCV_EXTRA_MODULES_PATH 就是用来指定要编译的扩展模块,后边加上刚下载的opencv_contrib模块的路径即可。
这里官方文档上还给出了其他一些参数,但是我没用过,这里就不再描述了。有需要的可以查看http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html
4.把代码编译成可执行文件,这里官方推荐使用多进程编译,推荐七个进程:
make # 这一步也在build目录中进行
5.安装。
sudo make install
6.sudo make install 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境
首先将OpenCV的库添加到路径,从而可以让系统找到
sudo gedit /etc/ld.so.conf.d/opencv.conf
执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加
/usr/local/lib
执行如下命令使得刚才的配置路径生效
sudo ldconfig
配置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
至此所有的配置都已经完成
7.运行测试。
我是用python+opencv的,我这里直接运行opencv自带的python的例子程序
cd <opencv3.4.1_dir>/samples/python/
python asift.py
参考文献:
http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html
https://github.com/Itseez/opencv_contrib/blob/master/README.md
- 查看opencv版本:
pkg-config --modversion opencv
- 卸载opencv:
在ubuntu下删除opencv的步骤如下:
1)进入opencv的源代码文件夹下的build(这是你在安装opencv时候自己命名的,cmake时候所在的目录)
2)依次执行下面的代码
make uninstall
cd ..
sudo rm -r build
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv_*
转自:https://blog.csdn.net/zhuquan945/article/details/52784890