In Ubuntu 16.04 LTS installation compiled OpenCV 4.1.1


Note: The original is not easy, reproduced, please be sure to indicate the source and author, thanks for the support!

At present the latest version of OpenCV (2019-8-1) is 4.1.1. This article describes how to compile and install the latest version of OpenCV 4.1.1 and 4.1.1 corresponding contrib repository in Ubuntu 16.04 LTS next.

Preparing to install a

(1) a Ubuntu 16.04 LTS operating system. Select fast speed domestic sources and update the system update

sudo apt-get update
sudo apt-get upgrade

(2) Install the latest version of cmake-gui
enter cmake.org download the latest version of cmake source code, use the following command to install.

Decompression:

tar -zxvf cmake-3.15.2.tar.gz

Install cmake (Legacy cmake Ubuntu software library):

sudo apt-get install cmake

Compile and install the latest version of cmake:

cd cmake-3.15.2/
mkdir build
cd build
cmake ..
make                # 使用make -j,虚拟机有卡死的风险
sudo make install

After cmake source installation without a GUI, to install cmake-gui, also you need to install cmake-qt-gui

sudo apt-get install cmake-qt-gui

(3) to download OpenCV 4.1.1the source code and the source code corresponding to the contrib 4.1.1


Two compile and install OpenCV 4.1.1

(1) Installation OpenCV dependencies

sudo apt-get install build-essential

# OpenCV官网中安装的是旧版本的libgtk2.0-dev,这里我们安装新版本的libgtk-3-dev
sudo apt-get install git libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

# OpenCV官网中安装2.7版本的python-dev和python-numpy,这里我们安装python 3版本的python3-dev和python3-numpy
sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

(2) unzip

tar -zxvf opencv-4.1.1.tar.gz
tar -zxvf opencv_contrib-4.1.1.tar.gz

(3) using the generated Makefile cmake-gui
established directory opencv-4.1.1 build in

cd opencv-4.1.1/
mkdir build

Open cmake-gui, set the source code directory /home/your-name/opencv-4.1.1/, set the binaries directory for just the new build directory, that is /home/your-name/opencv-4.1.1/build.

OpenCV is generated by default python version is python 2.7, which is very pit father! In order for OpenCV compiled python 3 version of opencv_python3, you need to add a compiler option. Among the cmake-gui, click Add Entry, as shown below, fill compiler option name PYTHON_DEFAULT_EXECUTABLEpath and the system python 3 /usr/bin/python3.5(depending on the actual situation) can.

还有记得把编译选项OPENCV_GENERATE_PKGCONFIG打开!新版本的OpenCV默认把这个编译选项给关掉了!如果该选项没有打开,pkg-config就没法使用了。这样,你想在命令行里直接编译opencv程序会是很痛苦的事情,只能借助CMake解决。

为了编译opencv_contrib,需要在cmake-gui中将编译选项OPENCV_EXTRA_MODULES_PATH填入contrib库所在的路径,比如/home/your-name/opencv_contrib-4.1.1/modules/

(4) 编译安装OpenCV
生成Makefile之后,进入/home/your-name/opencv-4.1.1/build,编译并安装。然后是漫长的等待过程。

make -j2
sudo make install

(5) 验证
验证pkg-config功能是否正确

lzh@lzh-VirtualBox:~$ pkg-config --cflags --libs opencv4
-I/usr/local/include/opencv4/opencv -I/usr/local/include/opencv4 -L/usr/local/lib -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_dnn -lopencv_objdetect -lopencv_videoio -lopencv_photo -lopencv_imgcodecs -lopencv_gapi -lopencv_stitching -lopencv_calib3d -lopencv_features2d -lopencv_imgproc -lopencv_flann -lopencv_core
lzh@lzh-VirtualBox:~$ 

验证成功!

验证opencv_python3是否正确安装。

lzh@lzh-VirtualBox:~$ python3
Python 3.5.2 (default, Nov 12 2018, 13:43:14) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> print(cv2.__version__)
4.1.1
>>> 

验证成功!

验证C++版本的opencv是否正确安装。

// Test-OpenCV-Install.cpp

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main(int argc, char **argv)
{
    Mat src = imread("./lena.jpg", IMREAD_COLOR);
    if (!src.data)
    {
        cerr << "Error : could not load image." << endl;
        return -1;
    }

    imshow("input", src);
    waitKey(0);

    return 0;
}

先执行如下命令。因为你刚安装opencv,opencv所有的共享库被写入了/usr/local/lib当中,此时,为了运行上述Opencv程序,你需要执行下面的命令将/usr/local/lib里的共享库信息重新载入内存,否则,会报找不到共享库的错误!

sudo ldconfig

编译并执行上述程序。

lzh@lzh-VirtualBox:~$ g++ -g -Wall -std=c++11 Test-OpenCV-Install.cpp -o Test-OpenCV-Install `pkg-config --cflags --libs opencv4`
lzh@lzh-VirtualBox:~$ ./Test-OpenCV-Install 
lzh@lzh-VirtualBox:~$ 

验证成功!

Guess you like

Origin www.cnblogs.com/laizhenghong2012/p/11329916.html