ubuntu 系统 OpenCV 4 安装教程

ubuntu 系统 OpenCV 4 安装教程

  • 1. 安装前准备
    • (1)安装依赖项
    • (2)下载源码
  • 2. 编译与安装
  • 3. 编程测试
    • (1)命令行方式编译
    • (2)cmake 方式编译
  • 4. 卸载
  • 参考链接

在 ubuntu 20.04 系统上,安装 OpenCV 4 的 C++ 开发环境。

1. 安装前准备

(1)安装依赖项

OpenCV 有很多的依赖项,有一些必须的,还有很多可选的。
必须的:
gcc, cmake, build-essential, libtbb(英特尔线程构建模块), GTK+2.x或更高版本,这些 Ubuntu 系统通常都会自带安装。

sudo apt install build-essential cmake libtbb2 libttb-dev libgtk-3-dev

可选的:
可选的依赖项有很多,如图片编码库、视频编码库等。这些依赖项是针对某些特定的功能,即使没有安装也不会影响OpenCV 4 的编译与使用。建议将常用的依赖都安装上,防止以后需要用到某些特定的功能。

sudo apt install python3 python3-dev pkg-config
sudo apt install libjpeg-dev libpng-dev libtiff-dev libjasper-dev 
sudo apt install zlib1g zlibe1g-dev libavcodec-dev libavformat-dev libswscale-dev
sudo apt install  libv4l-dev libxvidcore-dev libx264-dev libatlas-base-dev libdc1394-22-dev 
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev 
sudo apt install gfortran openexr libopenexr-dev

(2)下载源码

从 OpenCV 的 github 上下载最新的源码(source code),
ubuntu 系统 OpenCV 4 安装教程_第1张图片

2. 编译与安装

解压后可以得到 OpenCV 4.5.3 的源码。
(1)进入源码目录,创建并进入 build 文件夹

cd opencv-4.5.3
mkdir build
cd build

(2)运行 cmake命令,进行编译检查

cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..

关于编译选项的说明:

  • -D OPENCV_GENERATE_PKGCONFIG=ON ,OpenCV4 默认不生成.pc文件,该选项开启生成 opencv4.pc 文件,从而支持pkg-config功能。
  • -D CMAKE_INSTALL_PREFIX=/usr/local,指定安装路径,设置该选项后,各部分分别安装在/usr/local/目录的include/bin/lib/3个文件夹下。

在执行 cmake命令的过程中,会自动下载IPPICV,通常会报错如下,

-- IPPICV: Download: ippicv_2020_lnx_intel64_20191018_general.tgz
-- Try 1 failed
--
=======================================================================
  Couldn't connect to server from the Internet.
  Perhaps direct connections are not allowed in the current network.
  To use proxy please check/specify these environment variables:
  - http_proxy/https_proxy
  - and/or HTTP_PROXY/HTTPS_PROXY
=======================================================================

CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
  IPPICV: Download failed: 7;"Couldn't connect to server"

  For details please refer to the download log file:

  ~/opencv-4.5.3/build/CMakeDownloadLog.txt

这是由于无法正常访问 https://raw.githubusercontent.com 网站,可以通过修改 hosts 文件的方式来解决:
(1)使用sudo vi /etc/hosts,打开hosts文件,
(2)在文件末尾添加185.199.109.133 raw.githubusercontent.com
(3)sudo systemctl restart NeworkManager.service重启网络服务,使上述修改生效。
(4)ping raw.githubusercontent.com,如果能 ping 通,且延时不大,则说明能正常访问。

重新执行cmake命令,发现IPPICV部分能正常下载。

-- IPPICV: Download: ippicv_2020_lnx_intel64_20191018_general.tgz
-- found Intel IPP (ICV version): 2020.0.0 [2020.0.0 Gold]
-- at: ~/opencv-4.5.3/build/3rdparty/ippicv/ippicv_lnx/icv
-- found Intel IPP Integration Wrappers sources: 2020.0.0
-- at: ~/opencv-4.5.3/build/3rdparty/ippicv/ippicv_lnx/iw

(3)编译并安装

sudo make -j8
sudo make install

-j8选项是指使用 8 个线程进行编译,这个可以根据自己的电脑性能进行设置,默认为单线程。使用 8 个线程进行编译时,大概 10 分钟能完成编译过程。

(4)C++ 环境配置
先在/etc/ld.so.conf.d/文件夹下新建一个opencv4.conf文件,然后写入/usr/local/lib

cd /etc/ld.so.conf.d/
sudo touch opencv4.conf
sudo sh -c 'echo "/usr/local/lib" > opencv4.conf

然后,更新pkg-config

sudo ldconfig

编辑 bashrc 文件,添加下面两条语句。

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

此时,使用下面的两条命令,应该能够查看到相应的路径。

> pkg-config --libs opencv4
-I/usr/local/include/opencv4

> pkg-config --cflags opencv4
-L/usr/local/lib -lopencv_gapi -lopencv_highgui -lopencv_ml 
-lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_video 
-lopencv_calib3d -lopencv_features2d -lopencv_dnn -lopencv_flann 
-lopencv_videoio -lopencv_imgcodecs -lopencv_imgproc -lopencv_core

使用下面的命令可以查看opencv的版本。

> opencv_version
4.5.3

3. 编程测试

编写一个简单的图像显示程序,来测试安装的 OpenCV 4 开发环境。
源码display_image.cpp文件,

#include 

int main(int argc, char** argv)
{
        cv::Mat img = cv::imread(argv[1], -1);
        if(img.empty())
                return -1;

        cv::namedWindow("display image", cv::WINDOW_AUTOSIZE);
        cv::imshow("display image", img);
        cv::waitKey(0);
        cv::destroyWindow("display image");

        return 0;
}

(1)命令行方式编译

使用以下命令进行编译,

g++ display_image.cpp -o display_image.out `pkg-config opencv4 --cflags --libs`

注意:命令中的单引号必须是``(键盘左上角数字键 1 左边的按键),而不是常用的'',否则会显示找不到文件。

(2)cmake 方式编译

编写 CMakeLists.txt文件,

cmake_minimum_required(VERSION 2.6)

# 创建工程
project(display_image)

# C++版本为11
set(CMAKE_CXX_FLAGS "-std=c++11")

# 寻找 OpenCV 4 安装路径
find_package(OpenCV 4.3.5 REQUIRED) 
# 加载OpenCV 4 的头文件
include_directories(${OpenCV_INCLUDE_DIRS}) 

# 添加可执行文件
add_executable(display_image display_image.cpp) 

# 链接 lib 文件到可执行文件中
target_link_libraries(display_image ${OpenCV_LIBS})

然后,进行编译,

mkdir build
cmake ..
make

编译后,使用以下命令运行程序,可以打开对应的图像,

../dispaly_image.out path_to_picture

opencv 自带了许多示例程序,在 opencv-4.5.3/samples/cppopencv-4.5.3/samples/cmake目录中,可以编译后运行。

4. 卸载

如果需要卸载 OpenCV,可以使用下面的方法。
(1)删除opencv4.conf文件

cd /etc/ld.so.conf.d/
sudo rm opencv4.conf

(2)卸载
进入编译 opencv 的 build文件夹

cd opencv-4.5.3/build
sudo make uninstall

参考链接

  1. Ubuntu中安装OpenCV4和环境配置
  2. Ubuntu系统中安装OpenCV 4
  3. Ubuntu 18.04安装OpenCV4.0和环境配置
  4. Ubuntu20.04安装OpenCV4.5.1的详细步骤

你可能感兴趣的:(环境配置,OpenCV,linux,c++,OpenCV)