ubuntu20下Qt5.14.2+OpenCV(含Contrib)-4.5.0环境搭建

2023-10-26

Qt若要能处理图片和视频,就必须安装OpenCV,而OpenCV中很多的高级功能如人脸识别等都包含在Contrib扩展模块中,需要将Contrib与OpenCV一起联合编译,目前所用这两个版本都是4.5.0版。

一、下载OpenCV

OpenCV的官方下载地址为http://opencv.org/releases.html,这里选择OpenCV4.5.0版,单击“Sources”超链接下载其源代码的压缩包,得到opencv-4.5.0.zip。
在这里插入图片描述找到4.5.0版本的源码下载
在这里插入图片描述

二、下载Contrib

OpenCV官方将已经成熟稳定的功能放在opencv包里发布,而在发展中尚未成熟的技术则统一置于Contrib扩展模块中。通常情况下,下载的OpenCV中不包含Contrib扩展库的内容,如果只是进行一般的图片、视频处理,则仅使用OpenCV就足够了,但是OpenCV中默认不包含SIFT、SURF等先进的图像特征检测技术,另外一些高级功能(如人脸识别等),都在Contrib扩展库中,若欲充分发挥OpenCV的强大功能,则必须将其与Contrib扩展库放在一起联合编译使用。
从OpenCV标准Github网站中下载Contrib,地址为http://github.com/opencv。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

三、环境配置

打开终端,依次执行

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

四、安装

将OpenCV4.5.0下载解压后,再将opencv_contrib4.5.0解压到OpenCV4.5.0文件夹里面(为方便后续操作,可将上面两个文件夹分别命名为opencv4.5.0和opencv_conrib4.5.0)
在这里插入图片描述
然后在opencv-4.5.0文件夹下创建一个build文件夹,用于编译
在这里插入图片描述打开终端

cd build

执行cmake编译

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D OPENCV_EXTRA_MODULES_PATH=/home/yang/opencv-4.5.0/opencv_contrib-4.5.0/modules/face ..

在执行sudo make -j8 这一步是编译
最后执行sudo make install 这一步是安装
若出现下面的错误时:fatal error: boostdesc_bgm.i:没有那个文件或目录
在这里插入图片描述
这是因为camke配置的时候没有下载完全,可以重新尝试下载,或者从下面连接处下载

https://download.csdn.net/download/qq_40170041/87437485

然后将里面的文件放入opencv_contrib-4.5.0/modules/xfertures2d/src
在这里插入图片描述在opencv 的cmake编译的时候遇到 找不到 feature2d/test/test_detectors_regression.impl.hpp文件的问题。
在这里插入图片描述
先找这个文件在哪儿:

find -name test_detectors_regression.impl.hpp

发现这个路径在opencv下的 modules 目录下的:

opencv-4.5.0/modules/feature2d/test/test_detectors_regression.impl.hpp

为啥找不到呢,我查看make的运行命令:

make VERBOSE=1

发现报错的gcc执行命令中 -I参数的序列中并没有包含 modules这个路径。
知道问题了就简单了,解决方法就是添加这个参数。
我是通过修改项目的 CMakeLists.txt 来实现的,简单暴力 的那种:

gedit opencv/CMakeLists.txt

在下面一行行添加:

include_directories("modules")

然后重新执行cmake
在这里插入图片描述
在重新编译安装就可以了

在这里插入图片描述Qt中配置opencv库的路径
在这里插入图片描述

ORL人脸数据库40个
下载地址:https://www.qudong51.net/qudong/1040.html

安装SeetaFace2
解压后,在文件夹创建build,进入build目录,在终端打开,运行下面命令

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4_5_0 ..

然后编译安装
make -j8
make install

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu20下Qt5.14.2+OpenCV(含Contrib)-4.5.0环境搭建 的相关文章

随机推荐

  • 四个步骤,教你打造自媒体爆款标题。

    做自媒体的心里应该都会明白一篇文章或者是一个视频中标题的重要性 当然取一个好的标题也是有点难度的 但是不必担心 也会有一定的取标题的技巧 下面小编就跟大家讲讲一些取标题的建议 1 内容拟定好标题 在创作标题的时候还是要以文章的具体内容进行创
  • Android之登录注册——简易版

    今天 我要分享给大家的是Android中常见的一个的登录注册的案例 我这里写的是简易版 如果大家有更精彩的拓展 可以自行发挥哦 运行过程相信大家都已经心知肚明了 所以我在这里就直接发布代码了 其中有不理解的地方大家可以自行百度 也可以互相学
  • Unity 按钮点击生成物体

    1 生成button 2 新建脚本ButtonListener using System Collections using System Collections Generic using UnityEngine using UnityE
  • java运行错误排查汇总

    Jetty排错信息1 Failed startup of context o e j w WebAppContext java lang IllegalStateException Duplicate fragment name 原因及解决
  • Linux -- 构建KVM虚拟化环境

    硬件系统的配置 硬件和BIOS中虚拟化技术的支持是KVM运行的先决条件 在x86 64架构的处理器中 KVM必需的硬件虚拟化扩展分别为 Intel的虚拟化技术 Intel VT 和AMD的AMD V技术 一般在BIOS中 VT的选项通过 A
  • Github + Hexo 搭建个人博客

    文章目录 Github Hexo 搭建个人博客 快速搭建 安装Node js 添加国内镜像源 安装 Git 注册 Github 安装Hexo 连接Github与本地 写文章 发布文章 图片添加水印 修改样式 文章基本操作 发表文章 修改文章
  • matlab 三法求矩阵权重(算数平均法求权重,几何平均法求权重,特征值法求权重)

    三法求矩阵权重 例子为3 3的矩阵 可根据需要修改 算数平均法求权重 clc clear judge 1 6 9 7 8 9 6 1 9 7 8 7 7 9 1 w zeros 3 3 for i 1 3 for j 1 3 w i j j
  • C 结构体字节对齐规则

    参考 https blog csdn net xiaoxiangyuhai article details 79192781
  • mysql数据库加密密码如何解密_MySQL加密和解密实例详解

    MySQL加密和解密实例详解 数据加密 解密在安全领域非常重要 对程序员而言 在数据库中以密文方式存储用户密码对入侵者剽窃用户隐私意义重大 有多种前端加密算法可用于数据加密 解密 下面我向您推荐一种简单的数据库级别的数据加密 解密解决方案
  • merge与update区别---->你一定要看!

    merge与update区别 注 就因为这2个方法的区别还得我花了太多时间项目迟迟不能做完 但是让我解决了 学到了东西了 这是一段代码 public void updateData Object obj try tx this getSes
  • Mysql的七种join

    对于SQL的Join 在学习起来可能是比较乱的 我们知道 SQL的Join语法有很多inner的 有outer的 有left的 有时候 对于Select出来的结果集是什么样子有点不是很清楚 Coding Horror上有一篇文章 实在不清楚
  • C++技能系列 ( 5 ) - 详解函数入参/返回参使用(值传递/引用传递/指针传递/智能指针传递)

    系列文章目录 C 技能系列 Linux通信架构系列 C 高性能优化编程系列 深入理解软件架构设计系列 高级C 并发线程编程 期待动动小手 点击关注哦 当你休息的时候 一定要想到别人还在奔跑 When you rest we must thi
  • C++学习(六十九)国产先看GPU

    在CPU处理器领域 国产已经涉足了ARM MIPS甚至X86等多种指令集架构 不论自研还是授权都已经有所成就 但在GPU领域 国内厂商面对AMD NVIDIA两座大山恐怕连影都追不上 GPU市场的门槛太高 所以国内搞GPU自主研发的公司也有
  • Spring boot升级为Spring cloud配置修改(服务注册和服务发现简单案例)

    一 Spring Boot 升级Spring Cloud 1 导入Spring Cloud相关jar包 修改pom xml文件 备注 可能不同的Spring Boot版本会对应不同的Spring Cloud版本号 以下配置的Spring B
  • Android学习笔记——列表和适配器

    文章目录 一 ArrayAdapter适配器 二 下拉列表 Spinner 三 XML文件的引用 四 列表视图 listview 五 网格视图 GridView 六 自定义适配器 总结 一 ArrayAdapter适配器 适配器的角色就是将
  • 漏洞深入分析-2021

    前言 随着cve 2021 40444的披露 随机引爆了全球的网络安全 虽然最近微软发布了补丁 但是cve 2021 40444的利用却越发猖狂 0x00 0day样本分析 拿到样本的第一时间 便在自己的沙箱环境下面运行了下 并且从网上下载
  • 操作系统课设之Linux 进程间通信

    前言 课程设计开始了 实验很有意思 写博客总结学到的知识 白嫖容易 创作不易 学到东西才是真 本文原创 创作不易 转载请注明 本文链接 个人博客 https ronglin fun archives 175 PDF链接 见博客网站 CSDN
  • ESP32 开发的坑 太多了,满地都是

    jlink 死活 不能正常工作 1 无法连接到gdb 2连接上了 也无法下载程序 Warn Failed to send data to device LIBUSB ERROR TIMEOUT OpenOCD Error Sending d
  • 算法 常见数学问题

    一 最大公约数 gcd int gcd int a int b if b 0 return a else return gcd b a b 非递归形式 int gcd int a int b int tmp while b 0 tmp a
  • ubuntu20下Qt5.14.2+OpenCV(含Contrib)-4.5.0环境搭建

    Qt若要能处理图片和视频 就必须安装OpenCV 而OpenCV中很多的高级功能如人脸识别等都包含在Contrib扩展模块中 需要将Contrib与OpenCV一起联合编译 目前所用这两个版本都是4 5 0版 一 下载OpenCV Open