环境:ubuntu15.10 opencv3.2.0
为了使用opencv中提供的图像特征提取算法(SIFT)开始艰难的挖坑之旅(为什么说是坑呢?请看下文)。作为一只菜鸟我之前对这些东西都不甚了解,前辈说如此安装便照做了,但是每个人所用的系统可能有些出入,因此还需要针对自己的问题加以解决。本文先述明顺利安装的过程并附上截图,最后再针对本人在安装过程中所遇到的问题和解决办法加以说明。
1.到官网下载opencv源码,并解压到/usr/opencv-3.2.0。
官网地址:http://opencv.org/downloads.html
2.根据网上资料,输入如下命令安装依赖包:
在终端执行如下命令安装依赖包:
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
3.手动编译opencv源码
执行如下命令:
cd~/opencv-3.2.0
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
在release目录下执行如下命令:
进入release目录,执行如下指令:
make
sudo make install
make命令执行完成:
执行sudo make install命令:
等待编译完成,添加库路径及更新
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
安装完成后release/bin(注意下图为build/bin的目录,显然我第一次没有成功,成功的那次是新建的build文件夹)目录如下:
至此就完成了opencv的安装与jar包的生成,之后只需要将库文件导入开发环境就可以使用了。
遇到的问题及解决方案:
1)关于QT5的错误
终端显示错误报文如下:
CMake Warning at cmake/OpenCVFindLibsGUI.cmake:22 (find_package):
By not providing "FindQt5Concurrent.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"Qt5Concurrent", but CMake did not find one.
Could not find a package configuration file provided by "Qt5Concurrent"
with any of the following names:
Qt5ConcurrentConfig.cmake
qt5concurrent-config.cmake
Add the installation prefix of "Qt5Concurrent" to CMAKE_PREFIX_PATH or set
"Qt5Concurrent_DIR" to a directory containing one of the above files. If
"Qt5Concurrent" provides a separate development package or SDK, be sure it
has been installed.
Call Stack (most recent call first):
CMakeLists.txt:466 (include)
qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
CMake Error at /usr/share/cmake-2.8/Modules/FindQt4.cmake:1386 (message):
Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x
Call Stack (most recent call first):
cmake/OpenCVFindLibsGUI.cmake:34 (find_package)
CMakeLists.txt:466 (include)
-- Configuring incomplete, errors occurred!
See also "/home/*******/OpenCV/opencv-2.4.9/build/CMakeFiles/CMakeOutput.log".
See also "/home/*******/OpenCV/opencv-2.4.9/build/CMakeFiles/CMakeError.log".
Q:症结为我的系统上没有安装Qt5
A:执行如下命令安装Qt5
sudo apt-get install qt5-default
可以再次从未成功的步骤开始。
2) ippicv_linux_20151201.tgz下载失败
Q:因为"墙"的问题,很多安装问题都会卡在相关资源下载失败上,ippicv_linux_20151201.tgz也是因此下载失败
A:a)可以*当然是最好的;
b)如果翻不出去还可以选择离线下载之后再放到相应文件夹中,具体如下:
下载ippicv_linux_20151201.tgz之后,将其复制到opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e目录下然后再继续编译,(这 一文件夹是在编译过程中生成的,若找不到也可以手动创建)。
下载地址:http://download.csdn.net/download/lx928525166/9479919
c)不使用上述命令: cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..改为:cmake -DWITH_IPP=OFF
3) 检测不到java环境
在执行命令cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..时一定要注意如下图所示信息,“To be built”一行中一定要有java字样,否则安装完后无法支持java开发,生成jar包。
Q:检测不到java环境
A:若是之前没有为系统安装和配置java环境则先进行配置,之后再进行安装;若已经安装和配置过了,那不妨再次导出java环境变量信息:
export JAVA_HOME=/usr/lib/jvm/jdk-1.8.0_65
4)无法生成jar包
这一问题不仅与3)有关,而且还可能像我一样遇到以下问题。我在尝试解决了问题3)之后发现还是不能生成jar包,并且执行命令cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. 后如下图所示信息与网上所给参考不符:
Java下的ant,JNI,Java wrappers和Java tests行信息都为NO,顺利获得java支持的话应该都是yes的,且继续执行make命令后得到的release/bin目录如下(无jar包):
Q:系统未安装 ant(一开始我并不知道ant是什么)
A:执行命令 sudo apt-get install ant 后问题得以解决。
小结:
对命令不熟简直要命,好好看错误报文是很有用的,多上上*吧。
参考资料:
http://blog.csdn.net/u010278579/article/details/51406929
http://blog.csdn.net/u010638969/article/details/53494275
http://www.linuxidc.com/Linux/2016-05/131609.htm
http://*.com/questions/24378473/ubuntu-opencv-install-and-setup-qt5