Ubuntu 16.04 源码安装 opencv 3.2.0

一、需要的包

  • 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
  • [optional] CUDA Toolkit 6.5 or higher

The packages can be installed using a terminal and the following commands or by using Synaptic Manager:
可以通过如下命令安装这些包,最好全都(包括optional)装上去

[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

下载源码并安装

  1. 首先下载source code:
    https://codeload.github.com/opencv/opencv/zip/3.2.0
  2. 下载好之后解压。
    例如我下载好后得到的源码文件压缩包是opencv-3.2.0.zip,放到自己想要的目录里面然后解压(建议解压前退出root权限):unzip opencv-3.2.0.zip
  3. 进入解压后的目录:cd opencv-3.2.0
  4. 然后创建一个build目录:mkdir build
  5. 进入build目录:cd build
  6. 请先查看步骤7,输入命令配置cmake:cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
    CMAKE_INSTALL_PREFIX表示opencv库安装的位置。别少了最后两个点,两个点表示当前目录的父目录,是源文件所在的地方
  7. 执行上面的命令很可能会卡在下载ippicv_linux_20151201那个地方,直接Ctrl-C终止程序。然后直接在网上下载后,放到目录opencv-3.2.0/3rdparty/ippicv/downloads/Linux-808b791a6eac9ed78d32a7666804320e中,如果该目录不存在就创建之,然后重新执行步骤6的命令。下载地址(http://download.csdn.net/download/chu_ying/9432287)
  8. 现在可以编译源文件了,输入命令:make -j7,其中-j7表示用7个线程,速度快点。
  9. 安装,输入命令:sudo make install
  10. 输入命令pkg-config --cflags --libs opencv,显示的都是我们可引用的 OpenCV 静态库路径。

如果一切顺利,那就安装成功了,下面来试试。


测试

文件夹结构如下:

.
└── test
    ├── a.jpg
    ├── display_image
    └── display_image.cpp

1 directory, 3 files

源码test.cpp:

#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>

#include <iostream>
#include <string>

using namespace std;
using namespace cv;

int main(int argc, char *argv[]) {
    // 读取图片
    Mat img = imread(argv[1]);
    // 创建一个窗口
    namedWindow("display window", WINDOW_AUTOSIZE);
    // 在窗口里显示该图片
    imshow("display window", img);
    // 等待键盘输入
    waitKey(0);
    return 0;
}

编译:

g++ test.cpp -o test `pkg-config --cflags --libs opencv`

执行:

./test ./a.jpg

结果如下:
这里写图片描述

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页