Ubuntu14.04 Opencv3.3.0 安装配置及测试
网上有许多的Opencv的安装方法,不过找到一个适合自己的安装路数才最为重要,笔者整理了一下自己的安装配置测试过程,仅供学习参考。
###a. 安装前的准备工作
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
###b. 安装opencv
首先下载opencv源码,下载地址https://opencv.org/releases.html,注意选择下载source源码,我这里下载的是opencv3.3.0版本
cd opencv-3.3.0
mkdir release
cd release
cmake … 或者
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
(我是用的前面的cmake)
【PS update 2018.4.30】
如果是opencv_contrib也要使用,那么需要先下载好文件,cmake的执行命令也就变成
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules/ ..
【PS update 2018.7.24】
如果安装了anaconda3,希望通过编译完成自动生成cv2,那么可以使用以下命令:
cmake -D WITH_IPP=OFF -D PYTHON_DEFAULT_EXECUTABLE=~/anaconda3/bin/python3 -D BUILD_opencv_python3=ON -D BUILD_opencv_python2=OFF -D PYTHON3_EXCUTABLE=~/anaconda3/bin/python3 -D PYTHON3_INCLUDE_DIR=~/anaconda3/include/python3.6m -D PYTHON3_LIBRARY=~/anaconda3/lib/libpython3.6m.so.1.0 -D PYTHON_NUMPY_PATH=~/anaconda3/lib/python3.6/site-packages ..
貌似上面这个没起作用,我安装完成后,使用了以下命令,完成python3 opencv3.4.2 生成cv2
sudo pip3 install opencv_python
【PS update 2018.7.26】
如果你电脑支持GPU,并且安装好了cuda9.0,然后开始编译opencv3.4.*,你或许会遇到“compute_60”, "compute_61"的问题提示
这个问题主要是因为你的计算机的计算能力没有达到opencv默认的60和61的要求而导致的,可以通过设置参数-D CUDA_GENERATION=Kepler来解决,相关命令如下:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules/ -D CUDA_GENERATION=Kepler ..
make 或者 make -j8 (-j8是指你电脑可用的内核数,有的是j4,不指定也没关系,我用的前面的make)
sudo make install (注意一定要加sudo,否则会报出permission问题)
(安装结束后,可以用该条命令查看opencv版本,注意这里–modversion是双横线)
pkg-config --modversion opencv
【PS】opencv还有一种cmake-gui安装方式,就是有界面选项,不用直接命令行安装的方式,不过要安装qt-cmake-gui工具,具体的可以参考在ubuntu下使用cmake进行opencv的配置和Windows下进行使用cmake编译源代码比较,opencv3进行g++例子程序编译、动态库的制作 和 ubuntu下cmake3.4的安装(有GUI界面) ,以及Ubuntu + CUDA9 + CUDNN7 + OpenCV3.4 + contrib +CAFFE-master
【PS update 2018.5.3】
在安装opencv + opencv_contrib过程中你或许会遇到下面这个问题:
解决办法可参考
[1] ubuntu16.04编译opencv3.4.1和contrib遇到的错误及解决方法 (已实测)不过虽然解决了上述问题,在make的时候还是会出现其他问题,最后没有办法,笔者重新在github上下载了最新的opencv和opencv_contrib重新cmake后解决该问题,至于是什么原因造成的,我到现在也是一头雾水。
终于找到原因了:错在opencv和opencv_contrib不是同一个版本
###c. 至此,opencv已经安装完成了,不过不要认为这样就万事大吉了,别忘了配置环境变量
sudo gedit /etc/ld.so.conf (在弹出的窗口中复制如下一段文字:/usr/local/lib)
sudo ldconfig (使得配置生效)
sudo gedit /etc/bash.bashrc
(在弹出的窗口中添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
)
source /etc/bash.bashrc 使得配置生效
走到这里才算得上是真正安装opencv结束
###d. 来个短代码demo测试一下
cd opencv-3.3.0
mkdir demo
cd demo
sudo gedit DisplayImage.cpp
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
if ( argc != 2 )
{
printf("usage: DisplayImage.out <Image_Path>\n");
return -1;
}
Mat image;
image = imread( argv[1], 1 );
if ( !image.data )
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}
sudo gedit CMakeLists.txt (注意:这里的CMakeLists一定要书写正确,否则无法使用cmake政策编译)
要填写的内容如下:
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
然后就可以编译测试程序了
cmake .
make
./DisplayImage yourImagefilePath
【PS update 2018.7.25】
在Opencv 3.4.*版本上进行测试,按照上述cmake … 得到的opencv,在运行一个example的时候会爆出如下错误
error: #error “OpenCV 4.x+ requires enabled C++11 support”
解决办法: 在每次cmake … example的时候,加上-D CMAKE_CXX_FLAGS="-std=c++11" 进行编译,就不会报错啦。
参考链接:
【1】: http://www.cnblogs.com/txg198955/p/5990295.html
【2】: http://blog.csdn.net/Function_K/article/details/77899546
【3】: https://www.cnblogs.com/emouse/archive/2013/02/22/2922940.html
【4】: http://blog.csdn.net/Function_K/article/details/77899546