ubuntu16.04环境轻松安装和应用opencv4.9.0(基于源码编译)

目录

一、环境准备

1、安装cmake

2、安装依赖

3、从github上下载opencv4.9.0.zip

二、安装opencv4.9.0

1、解压4.9.0.zip

2、进入build目录编译

3、安装编译好的相关库

4、修改opencv配置文件并使其生效

5、添加PKG_CONFIG路径,并使其生效

三、opencv环境验证

1、编译示例文件

2、运行示例

3、举一反三


一、环境准备
1、安装cmake

sudo apt-get install cmake

2、安装依赖

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev pkg-config

3、从github上下载opencv4.9.0.zip

关于如何从github上快速下载需要的资源,在这里不详述,后面的文章进行补充😊

root@ubuntu-virtual-machine:/home/ubuntu/C++/opencv4.9.0# wget https://github.com/opencv/opencv/archive/4.9.0.zip

--2024-01-25 21:00:01-- https://github.com/opencv/opencv/archive/4.9.0.zip

正在解析主机 github.com (github.com)... 140.82.xxx.xxx

正在连接 github.com (github.com)|140.82.xxx.xxx|:443... 已连接。

已发出 HTTP 请求,正在等待回应... 302 Found

位置:https://codeload.github.com/opencv/opencv/zip/refs/tags/4.9.0 [跟随至新的 URL]

--2024-01-25 21:00:03-- https://codeload.github.com/opencv/opencv/zip/refs/tags/4.9.0

正在解析主机 codeload.github.com (codeload.github.com)... 20.205.xxx.xxx

正在连接 codeload.github.com (codeload.github.com)|20.205.xxx.xxx|:443... 已连接。

已发出 HTTP 请求,正在等待回应... 200 OK

长度: 未指定 [application/zip]

正在保存至: "4.9.0.zip"

4.9.0.zip [ <=> ] 92.98M 3.04MB/s in 35s

2024-01-26 21:00:39 (2.64 MB/s) - "4.9.0.zip" 已保存 [97492524]

这里下载时间用了35秒就将opencv4.9.0(近100M)的安装包下载好了(●'◡'●)

二、安装opencv4.9.0
1、解压4.9.0.zip

unzip 4.9.0.zip

2、进入build目录编译

(1)cmake编译

cd opencv-4.9.0

mkdir build

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

编译结束后看到最后三行日志表示编译OK

-- Configuring done

-- Generating done

-- Build files have been written to: /home/ubuntu/C++/opencv4.9.0/opencv-4.9.0/build
(2)make编译

make -j8

......

100%\] Linking CXX executable ../../bin/opencv_test_objdetect \[100%\] Built target opencv_perf_video \[100%\] Built target opencv_test_objdetect \[100%\] Linking CXX executable ../../bin/opencv_test_core \[100%\] Built target opencv_test_core

3、安装编译好的相关库

sudo make install

执行后的日志最后几行:

-- Installing: /usr/local/bin/opencv_annotation

-- Set runtime path of "/usr/local/bin/opencv_annotation" to "/usr/local/lib"

-- Installing: /usr/local/bin/opencv_visualisation

-- Set runtime path of "/usr/local/bin/opencv_visualisation" to "/usr/local/lib"

-- Installing: /usr/local/bin/opencv_interactive-calibration

-- Set runtime path of "/usr/local/bin/opencv_interactive-calibration" to "/usr/local/lib"

-- Installing: /usr/local/bin/opencv_version

-- Set runtime path of "/usr/local/bin/opencv_version" to "/usr/local/lib"

-- Installing: /usr/local/bin/opencv_model_diagnostics

-- Set runtime path of "/usr/local/bin/opencv_model_diagnostics" to "/usr/local/lib"

4、修改opencv配置文件并使其生效

sudo vim /etc/ld.so.conf.d/opencv.conf

/usr/local/lib

sudo ldconfig

5、添加PKG_CONFIG路径,并使其生效

sudo vim /etc/bash.bashrc

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export PKG_CONFIG_PATH

source /etc/bash.bashrc

编译安装成功后,我们会发现/usr/local/lib目录中会存在一些opencv相关的so库。

关于PKG_CONFIG,在这里不详述,后续的文章进行补充😊

三、opencv环境验证
1、编译示例文件

root@ubuntu-virtual-machine:/home/ubuntu/C++/opencv4.9.0/opencv-4.9.0/samples/cpp/example_cmake# cmake .

-- The C compiler identification is GNU 5.4.0

-- The CXX compiler identification is GNU 5.4.0

-- Check for working C compiler: /usr/bin/cc

-- Check for working C compiler: /usr/bin/cc -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Detecting C compile features

-- Detecting C compile features - done

-- Check for working CXX compiler: /usr/bin/c++

-- Check for working CXX compiler: /usr/bin/c++ -- works

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Detecting CXX compile features

-- Detecting CXX compile features - done

-- Found OpenCV: /usr/local (found version "4.9.0")

-- OpenCV library status:

-- config: /usr/local/lib/cmake/opencv4

-- version: 4.9.0

-- libraries: opencv_features2d;opencv_objdetect;opencv_photo;opencv_videoio;opencv_imgcodecs;opencv_dnn;opencv_stitching;opencv_ml;opencv_flann;opencv_highgui;opencv_imgproc;opencv_video;opencv_calib3d;opencv_core

-- include path: /usr/local/include/opencv4

-- Configuring done

-- Generating done

-- Build files have been written to: /home/ubuntu/C++/opencv4.9.0/opencv-4.9.0/samples/cpp/example_cmake

root@ubuntu-virtual-machine:/home/ubuntu/C++/opencv4.9.0/opencv-4.9.0/samples/cpp/example_cmake# make

Scanning dependencies of target opencv_example

50%\] Building CXX object CMakeFiles/opencv_example.dir/example.cpp.o \[100%\] Linking CXX executable opencv_example \[100%\] Built target opencv_example

2、运行示例

root@ubuntu-virtual-machine:/home/ubuntu/C++/opencv4.9.0/opencv-4.9.0/samples/cpp/example_cmake#./opencv_example

运行结果:

3、举一反三

在samples/cpp/test目录下,编写测试代码:

cpp 复制代码
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>

using namespace cv;

int main()
{
    std::string image_path = samples::findFile("test.jpg");
    Mat img = imread(image_path, IMREAD_COLOR);

    if(img.empty())
    {
        std::cout << "Could not read the image: " << image_path << std::endl;
        return 1;
    }

    imshow("Display window", img);
    
    return 0;
}

我们可以看到,将一张图片显示出来了

【欢迎关注编码小哥,学习更多实用的编程知识】

相关推荐
ZC跨境爬虫8 小时前
Scrapy分布式爬虫(单机模拟多节点):豆瓣Top250项目设置与数据流全解析
分布式·爬虫·python·scrapy
song150265372988 小时前
视觉检测设备:自动识别缺陷、尺寸、瑕疵、装配错误,一键全检
人工智能·计算机视觉·视觉检测
sg_knight8 小时前
设计模式实战:命令模式(Command)
python·设计模式·命令模式
石榴树下的七彩鱼8 小时前
图片修复 API 接入实战:网站如何自动去除图片水印(Python / PHP / C# 示例)
图像处理·后端·python·c#·php·api·图片去水印
Polar__Star8 小时前
C#怎么操作Chart图表控件 C#如何用WinForms Chart控件绑定数据绘制统计图表【控件】
jvm·数据库·python
2401_897190558 小时前
CSS如何制作数字滚动效果_利用transform位移数字
jvm·数据库·python
2301_813599559 小时前
HTML图片怎么用UnoCSS对齐_UnoCSS原子化CSS图片对齐实战
jvm·数据库·python
m0_377618239 小时前
c++怎么在不加载整个大文件的情况下获取其SHA256校验值【进阶】
jvm·数据库·python
LN花开富贵9 小时前
【ROS】鱼香ROS2学习笔记二
linux·笔记·python·学习·嵌入式
qq_1898070310 小时前
CSS如何实现纯CSS树状目录结构_利用-checked与递归思维构建交互节点
jvm·数据库·python