IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Ubuntu(Linux)安装 OpenCV 4.4.0 -> 正文阅读

[系统运维]Ubuntu(Linux)安装 OpenCV 4.4.0

安装OpenCV4.4.0

安装最新版的 OpenCV 可以解决大部分的兼容性问题。

下载压缩包

链接:https://pan.baidu.com/s/1PdgTUV0h016DTE9TGmhDWg
提取码:7s0y

解压 zip 格式的源码后,在解压后的目录中进入 apps 文件夹:

unzip opencv-4.4.0.zip

安装依赖包

必须安装的依赖包:

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

此时,如果 apt-get 出现"软件包有未满足的依赖关系“问题。

此问题的解决办法:使用 aptitude 。

aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些。举例来说,aptitude 在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。
运行后,不接受未安装方案,接受降级方案。这样,就可以成功安装库了。

编译和安装

此时的命令执行,我们需要在之前进入的 apps 文件夹目录下。当然,这个目录可能每个人的都不一样,以下命令的执行需要 CMakeLists.txt 文件。这个文件在我的虚拟机上是在 apps 文件夹下。所以,如果编译时报错找不到文件,请在自己的虚拟机上进行查找,然后进入相应文件夹下,进行以下指令。
在这里插入图片描述

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make
sudo make install

其中,第二个指令 sudo make 可能执行的时间比较长,我的Ubuntu执行了2个多小时才结束。

配置OpenCV4.4.0

sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

测试OpenCV4.4.0

首先新建一个 QT 文件,这里创建了有默认代码的 QT 文件,然后打开 pro 文件,为其配置 opencv:

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
 
SOURCES += \
        main.cpp
//这里的路径请根据自己的实际情况进行修改
//这里的路径应该是逐级写的,写的是存放库文件的路径(如理解错误,请大佬指出)
//我的路径就是:/usr/local/include/opencv4/opencv2 
//详见下面的第一张图
INCLUDEPATH += /usr/local/include \
               /usr/local/include/opencv4 \
               /usr/local/include/opencv2
//这里的路径请根据自己的实际情况进行修改
//这个应该是同样的道理
//我的路径就是:/usr/local/lib
//详见下面第二张图              
LIBS += /usr/local/lib/libopencv_highgui.so \
        /usr/local/lib/libopencv_core.so    \
        /usr/local/lib/libopencv_imgproc.so \
        /usr/local/lib/libopencv_imgcodecs.so

在这里插入图片描述
在这里插入图片描述
测试源程序 main.cpp:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;

int main()
{
    Mat img = imread("群岛.jpg");//存放图像的路径
    line(img,Point(1,1),Point(250,250),Scalar(0,0,255),5);//画一条直线
    namedWindow("island",0);//创建窗口
    resizeWindow("island", 1000, 500); //创建一个1000*500大小的窗口
    imshow("island",img);//在创建的窗口中显示图片
    waitKey(0);
    return 0;
}

需要注意的是:读取图片的时候,如果像上面的程序一样写相对路径的话,需要将图片放入项目的 debug 目录下,不能放在源程序所在的目录下。否则,请写绝对路径。下面,还会展示一个绝对路径的例子。

测试结果:
在这里插入图片描述
绝对路径的例子源代码:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;

int main()
{
    Mat img = imread("/mnt/hgfs/My Share/冬景.jpg");//存放图像的路径
    line(img,Point(1,1),Point(250,250),Scalar(0,0,255),5);//画一条直线
    namedWindow("winter",0);//创建窗口
    resizeWindow("winter", 1000, 500); //创建一个1000*500大小的窗口
    imshow("winter",img);//在创建的窗口中显示图片
    waitKey(0);
    return 0;
}

测试结果:
在这里插入图片描述

最后的话

码的这么累,各位观众给个赞呗!
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 19:19:35  更:2022-04-22 19:20:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:26:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码