Linux下Qt配置opencv环境(ippicv,ffmpeg手动配置)

news2024/9/23 9:21:35

1.opencv配置使用问题

        opencv在cmake的时候有两个问题,ippicv长时间卡住下载失败,ffmpeg不会卡住但是也不会配置成功。所以这两个包只能手动下载安装。

        ippicv是什么

        OpenCV设计用于高效的计算,十分强调实时应用的开发。它由C++语言编写并进行了深度优化,从而可以享受多线程的优势,如果希望得到更多在英特尔架构上的自动优化,可以购买英特尔的集成性能基元(IPP)库,该库包含了许多算法领域的底层优化程序。在库安装完毕的情况下OpenCV在运行的时候会自动调用合适的IPP库。从OpenCV3.0开始,英特尔许可OpenCV研发团队和OpenCV社区拥有一个免费的IPP库的字库(称IPPICV),该子库默认集成在OpenCV中并在运算时发挥效用。

        所以ippicv主要是在英特尔架构上有优化加成,如果不是,cmake等待下载失败也是能用的。

        ffmpeg是什么

        opencv是计算机视觉的库,ffmpeg是一个处理媒体流(视频、音频)的开源软件。当然。如果你下载的是完整的ffmpeg的构建包,那么里面的源代码也可以直接拿来当作处理媒体流的API。opencv中嵌入ffmpeg是因为opencv处理媒体流时需要ffmpeg的编解码和一系列IO函数进行操作,最典型的地方就在于VideoWriter这个类,他需要调用ffmpeg的视频流IO函数才能将视频写入本地。

这是opencv支持的编码格式,最好是安装,不然很多格式视频就不能处理。

2.ippicv手动下载

2.1 根据opencv版本下载,opencv-3.4.1/3rdparty/ippicv/ippicv.cmake查看版本

 下载地址:https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20170822/ippicv

按版本切换分支。比如:ippicv_2017u3_lnx_intel64_general_20170822.tgz

 2.2 修改opencv-3.4.1/3rdparty/ippicv/ippicv.cmake文件的下载地址改为本地路径,47行 链接改成文件路径 "file:///home/downloads/"

        ippicv就配置好了。cmake时候就会读取本地文件。

3.ffmpeg下载,编译,安装

3.1  同样进入 opencv-3.4.1/3rdparty/ffmpeg/ffmpeg.cmake  查看版本

 下载地址:Branches · opencv/opencv_3rdparty · GitHub

 ffmpeg/master_20180220_src/sources/build/ffmpeg 里面的 

3.2 解压后就是可编译的源码,编译之前先下载安装所需要的库,避免一些编译或者使用的错误。

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

 3.3 进入解压目录下,配置configure文件,--prefix=/usr/local/ffmpeg 是设置ffmpeg安装目录

 ./configure --enable-shared --disable-static --disable-x86asm --prefix=/usr/local/ffmpeg

3.4 make编译源码 

make -j16

3.5 make install 安装 ffmpeg 到之前配置的安装目录。 

sudo make install

3.6 安装完目录

3.7 配置使用环境,

sudo vim /etc/ld.so.conf

/usr/local/ffmpeg

/usr/local/ffmpeg/lib

sudo ldconfig

sudo vim /etc/profile

export PATH="/usr/local/ffmpeg/bin:$PATH"

source /etc/profile

3.8 确认是否安装成功 输入 指令 ffmpeg

 4 ffmpeg 也可以直接在线安装

sudo apt-get install ffmpeg 

 5 opencv 下载,编译,安装

 5.1 下载地址 Releases - OpenCV  这里选择 opencv-3.4.1

解压后目录下新建一个build文件夹用于编译。

        编译之前先安装cmake和一些依赖库

        sudo apt-get cmake

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

        进入build文件夹 执行 cmake 编译配置文件, 生成opencv.pc文件 和 开启ffmpeg功能

cmake -D OPENCV_GENERATE_PKGCONFIG=ON -D WITH_FFMPEG=ON ..

ffmpeg 已经开启。 

 5.2 make 编译源码

make -j16

5.3 make install 安装 

sudo make install

 opencv会安装到 /usr/local 目录下

5.4 添加环境

sudo vim /etc/ld.so.conf

/usr/local/lib

sudo ldconfig

6 Qt添加opencv 库和头文件

INCLUDEPATH += /usr/local/include/opencv\
                /usr/local/include/opencv2\

LIBS+= /usr/local/lib/libopencv_calib3d.so
LIBS+=/usr/local/lib/libopencv_core.so
LIBS+=/usr/local/lib/libopencv_dnn.so
LIBS+=/usr/local/lib/libopencv_features2d.so
LIBS+=/usr/local/lib/libopencv_flann.so
LIBS+=/usr/local/lib/libopencv_highgui.so
LIBS+=/usr/local/lib/libopencv_imgcodecs.so
LIBS+=/usr/local/lib/libopencv_imgproc.so
LIBS+=/usr/local/lib/libopencv_ml.so
LIBS+=/usr/local/lib/libopencv_objdetect.so
LIBS+=/usr/local/lib/libopencv_photo.so
LIBS+=/usr/local/lib/libopencv_shape.so
LIBS+=/usr/local/lib/libopencv_stitching.so
LIBS+=/usr/local/lib/libopencv_superres.so
LIBS+=/usr/local/lib/libopencv_videoio.so
LIBS+=/usr/local/lib/libopencv_video.so

7 opencv3.4 版本 打开视频文件报错问题

Error: OpenCV(3.4.1) Error: Assertion failed (chunk.m_size <= 0xFFFF) in  
cv::AVIReadContainer::readFrame, file D:\Build\OpenCV\opencv-  
3.4.1\modules\videoio\src\container_avi.cpp, line 514

问题原因:源码文件modules/videoio/src/container_avi.cpp中 514行设置的视频容量上限值小了,我们设置一个更大的值。

CV_Assert(chunk.m_size <= 0xFFFF);改成CV_Assert(chunk.m_size <= 67108864);

67108864 这个值是opencv 高版本中官方设置的值,但是低版本中官方并没有修复。
然后重新编译 -》重新安装

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/931358.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

腾讯云服务器地域有什么区别?怎么选择合适?

腾讯云服务器地域有什么区别&#xff1f;怎么选择比较好&#xff1f;地域选择就近原则&#xff0c;距离地域越近网络延迟越低&#xff0c;速度越快。关于地域的选择还有很多因素&#xff0c;地域节点选择还要考虑到网络延迟速度方面、内网连接、是否需要备案、不同地域价格因素…

聚观早报 | 青瓷游戏上半年营收3.34亿元;如祺出行冲击IPO

【聚观365】8月26日消息 青瓷游戏上半年营收3.34亿元 如祺出行冲击IPO 索尼互动娱乐将收购Audeze 昆仑万维上半年净利润3.6亿元 T-Mobile计划在未来五周内裁员5000人 青瓷游戏上半年营收3.34亿元 青瓷游戏发布截至2023年6月30日止的中期业绩&#xff0c;财报显示&#xf…

聚类分析 | MATLAB实现基于DBSCAD密度聚类算法可视化

聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化 目录 聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于DBSCAD密度聚类算法可视化&#xff0c;MATLAB程序。 使用带有KD树加速的dbscan_with_kdtree函数进行…

AI绘画 | Discord的最强7款AI插件整理汇总

hi&#xff0c;同学们&#xff0c;我是赤辰&#xff0c;本周起&#xff0c;我们将开启AI工具教程篇的栏目&#xff0c;每天会更新1篇AI教程或推荐实用AI工具&#xff0c;文章底部准备了粉丝福利&#xff0c;看完可以领取&#xff01; 今天给大家整理了Discord的最强7款AI插件汇…

ai课堂行为分析检测评估

ai课堂行为分析检测评估系统通过yolo网络模型算法&#xff0c;ai课堂行为分析检测评估算法利用摄像头采集学生的图像&#xff0c;视线跟踪技术的智能教学系统由情感模型、教师模型、学生模型和课程模型四个模型组成。用户端的视线及表情信息通过摄像头采集并传递到情感模型情感…

日常踩坑记录

本篇文章主要介绍一下最近的开发中用到的些小问题。问题不大&#xff0c;但有些小细节&#xff0c;记录一下&#xff0c;有遇到的朋友可以看一下&#xff0c;有更好的解决方法欢迎分享。 浏览器记住密码自动填充表单 这个问题我在火狐浏览器遇到了。我登录系统时选择了浏览器…

【MySQL系列】统计函数(count,sum,avg)详解

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

SpringBoot源码剖析

SpringBoot概念 什么是SpringBoot spring官方的网站&#xff1a;https://spring.io/ 翻译&#xff1a;通过Spring Boot&#xff0c;可以轻松地创建独立的&#xff0c;基于生产级别的基于Spring的应用程序&#xff0c;并且可以“运行”它们 其实Spring Boot 的设计是为了让你…

js中?.、??、??=的用法及使用场景

上面这个错误&#xff0c;相信前端开发工程师应该经常遇到吧&#xff0c;要么是自己考虑不全造成的&#xff0c;要么是后端开发人员丢失数据或者传输错误数据类型造成的。因此对数据访问时的非空判断就变成了一件很繁琐且重要的事情&#xff0c;下面就介绍ES6一些新的语法来方便…

分布式 - 服务器Nginx:一小时入门系列之TCP反向代理和负载均衡

文章目录 1. HTTP反向代理和TCP反向代理2. http 块和 stream 块3. TCP反向代理配置4. TCP 负载均衡 1. HTTP反向代理和TCP反向代理 Nginx可以作为HTTP反向代理和TCP反向代理。 HTTP反向代理是指Nginx作为Web服务器的代理服务器&#xff0c;接收客户端的HTTP请求&#xff0c;然…

AI智能工服识别算法

AI智能工服识别算法通过yolov5python网络深度学习算法模型&#xff0c;AI智能工服识别算法通过摄像头对现场区域利用算法分析图像中的工服特征进行分析实时监测工作人员的工服穿戴情况&#xff0c;识别出是否规范穿戴工服&#xff0c;及时发现不规范穿戴行为&#xff0c;提醒相…

cortex-A7 UART总线实验---STM32MP157

实验目的&#xff1a;实现字符/字符串收发 一&#xff0c;总线相关 1&#xff0c;总线&#xff1a;各个部件之间传输的一种媒介 芯片内部总线&#xff1a;核与芯片内部控制器进行连接 A7---AHB4总线---GPIO控制器 A7---AHB4总线---RCC控制器 芯片外部总线&#xff1a;SOC…

C# winform加载yolov8模型测试(附例程)

第一步&#xff1a;在NuGet中下载Yolov8.Net 第二步&#xff1a;引用 using Yolov8Net; 第三步&#xff1a;加载模型 private IPredictor yolov8 YoloV8Predictor.Create("D:\\0MyWork\\Learn\\vs2022\\yolov_onnx\\best.onnx", mylabel); 第四步&#xff1a;图…

速卖通产品权重打造,自养号补单技术策略

跨境电商市场的竞争确实很激烈&#xff0c;中小卖家要在速卖通上获得一席之地确实有一定难度。虽然补单可以提升销量和排名&#xff0c;但是目前的测评市场确实存在一些问题&#xff0c;选择一个成熟的服务商进行补单是非常重要的。 在选择服务商时&#xff0c;确保他们的技术…

【android12-linux-5.1】【ST芯片】HAL移植后开机卡死

按照ST的官方readme移植HAL后开机一直卡在android界面&#xff0c;看logcat提示写文件时errorcode&#xff1a;-13。查下资料大致明白13错误码是权限不足&#xff0c;浏览代码在写文件的接口加日志后&#xff0c;发现是需要写iio:device*/buffer/enable这类文件的时候报错的。千…

[数据库]MYSQL之授予/查验binlog权限

1 MYSQL的binlog特性&#xff0c;需要用户具备哪些权限&#xff1f; MySQL Binlog权限需要3个权限 : SELECT 缺乏SELECT权限时&#xff0c;报错为 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user canal% to database binlog缺乏REPLICATI…

Modelica由入门到精通——连续离散混合建模

3.Modelica由入门到精通——连续离散混合建模 本人正在整理Modelica相关知识&#xff0c;特此做博客&#xff0c;希望可以帮助到有需要的朋友 文章目录 3.Modelica由入门到精通——连续离散混合建模一、 总览二、表达混合结构的结构体三、示例 一、 总览 物理系统的动态特性可…

layUI 中 穿梭框无法获取值的细节问题

初始化的时候一定要指定id&#xff0c;不然就会出现无法调用 获得右侧数据和实例重载的方法

【谷粒商城】环境搭建二:开发环境配置

开发环境配置统一 Maven配置 查看maven信息 修改配置文件&#xff1a;apache-maven-3.3.9\conf\settings.xml# 配置阿里云镜像 <mirrors><mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name&…

网络安全01-子域名收集

合天实验室学习子域名收集 1 、 fofa&#xff1a;https://fofa.info/ 2 、 JSFinder&#xff1a;https://github.com/Threezh1/JSFinder 简单爬取 python JSFinder.py -u http://www.mi.com深度爬取 python JSFinder.py -u http://www.mi.com -d3、subDomainsBrute 1.5&…