HLS_OPENCV库的安装

news2024/10/7 10:22:13

  借此机会来记录一下OPENCV库的安装:
  首先需要知道的是说起OPENCV库有两种,一种是OPENCV库,还有一种是Xilinx官方自己的OPENCV库,前者可以用来在HLS中进行仿真,无法进行综合,而后者则是可以进行综合的。现将两种库的环境都配置一下,记住版本最好一致,目前HLS2020.1版本以上已将OPENCV库移除,需要自行安装。

Xilinx官方的OPENCV库

  要去Xilinx官方的github库下载,https://github.com/Xilinx/Vitis_Libraries这里把链接贴在这,或者直接百度搜索
vitis vision library github也可。
在这里插入图片描述
在这里插入图片描述
  直接点进去所有的库都在这,你可以直接下载压缩包,但是解压途中可能会显示解压错误,初步原因定位在有些文件是在linux下运行的,区分大小写,但是window不区分大小写,因此,选择第二种方式,点击上图中的main,会弹出如下界面:
在这里插入图片描述
  在上图中选择与自己HLS对应版本,比如我的是2020.1版本,我就下载2020.1版本,rel相当于是初版,update是再次更新后的版本,有update就选择update版。下载后新建一个文件夹,将解压后的文件放其中,文件夹中有下面内容,记住其中vision是我们需要的文件,你可以先打开看看,在HLS里会需要它
在这里插入图片描述
  OK,现在我们已经在Xilinx的OPENCV库下载并解压好了,后面会将如何在HLS中进行配置,我们先来安装一下非Xilinx的OPENCV库。

非Xilinx官方的OPENCV库

  1、首先需要去opencv官网下载,https://opencv.org/releases/,注意版本对应,Xilinx官方已经在2020.1版本验证了OPENCV3.3版本可行,你自己下载版本的时候也最好下3.x版本,此外最好不要下载4.x版本,我这里下载的版本是3.4.11。下载好后执行,得到一个文件夹:
在这里插入图片描述
  进行到这一步还不够,我们还需要对其进行配置和编译,我们需要新建一个文件夹,用于存放编译后的文件夹,假设我新建了一个命名为build的文件夹,注意不要与上图中的build文件夹搞混。
  2、安装Mingw64工具,并配置环境变量,https://sourceforge.net/projects/mingw-w64/files/这个是Mingw64的安装网站,我这里下载的是8.1.0版本,如图所示:
在这里插入图片描述
  安装过程中选择一下安装路径即可,安装完后需要配置环境变量,右击此电脑—》属性–》高级系统设置–》环境变量,在path中添加:
在这里插入图片描述  在这里有个方法,比如说我的电脑上安装了几个版本的Mingw64,你不必将此前下载的高版本,例如9.x版本给删除再来安装8.1.0,而是可以通过将环境变量中8.1.0版本上移至高版本前面,这样默认优先启动8.1.0版本,配置完后快捷键WIN+R,输入cmd,然后输入gcc -v以及g++ -v,显示如下界面,即表明配置成功:
在这里插入图片描述
  3、下载安装CMAKE,https://cmake.org/download/,如图所示:
在这里插入图片描述
在这里插入图片描述
  下载完成后双击打开CMAKE,在 where is the source code 选择安装的 opencv 的source 文件夹路径就是该章节第一步中图中的source文件夹,在 where to build the binary 选择第一步新建的 build 文件夹路径。
在这里插入图片描述
  点击Configure,按如下界面配置:
在这里插入图片描述
在这里插入图片描述
  你要是忘记了上图中的gcc.exe、g++.exe的路径是可以通过该章节中第二部配置成功界面的所显示的路径找到的。然后在如下界面中:
在这里插入图片描述
  勾选 ENABLE_CXX11,勾选 WITH_OPENGL,不勾选OPENCV_ENABLE_ALLOCATOR_STATS,其余部分保持默认。再次单击 configure,出现 config done 之后单击 Generate,出现 generate done 之后将cmake-gui 关闭,右键开始菜单,输入 cmd,在 windows 下输入 cd + 文件夹路径,进入第一步新建的build 文件夹,进入之后输入 mingw32-make,开始进行编译,当编译完成之后输入mingw32-make install,之后会在build文件夹内生成一个install文件夹,如图所示:
在这里插入图片描述
  下面再次配置环境变量,install前面的路径以你自己为准,后面要对应好,不要出错:
在这里插入图片描述
  至此,两种OPENCV库均已下载好,并配置好了环境变量,下面将介绍在HLS中该怎样使用,将库包含进来。

OPENCV库在HLS中的使用

  在这里以新建工程为例,新建一个工程,工程文件,还有tb测试文件建好后,点击窗口的Project–》Project Settings,弹出如下界面:
在这里插入图片描述
  Simulation里是你的tb文件,Synthesis里是你的工程文件,在Synthesis里点击你的工程文件后,点击Edit CFLAGS,输入

-IE:/.../vision/L1/include //这里的路径请看上面第一章节中的黄色背景字体

  在此处你还需要设置你的顶层函数是哪个函数,否则是无法点击OK保存的!!!
  在Simulation里点击你的tb测试文件后,点击Edit CFLAGS,输入

-IE:/.../build/install/include -std=c++0x

  然后注意还需要配置下方的Linker Flags

-LE:/.../build/install/x64/mingw/lib -lopencv_core3411 -lopencv_imgcodecs3411 -lopencv_imgproc3411

  这里的build文件就是在第二章节中新建的build文件夹,然后打开路径E:/…/build/install/x64/mingw/lib,会显示如下图片:
在这里插入图片描述
上面代码中的opencv_core3411、opencv_imgcodecs3411、opencv_imgproc3411与图片中红色方框保持一致,由于这三个文件原本有一个lib的头,需要将其删除,上图为删除后的效果,不知道这样说,你是否听懂了。至此,库便已包含在HLS中。如果有没听懂的地方,以及没讲到的地方,你可以自己搜一下对应步骤,亦可以发消息问我,谢谢。
参考链接:
https://support.xilinx.com/s/question/0D52E00006hpOJESA2/using-vitis-vision-libraries-and-opencv?language=en_US
https://blog.csdn.net/qq_44406549/article/details/126103486?ops_request_misc=&request_id=&biz_id=102&utm_term=HLS%E5%AE%89%E8%A3%85opencv%E5%BA%93&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-126103486.142v82wechat,201v4add_ask,239v2insert_chatgpt&spm=1018.2226.3001.4187
黑金教程

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

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

相关文章

【综述型论文】图神经网络总结

文章目录图神经网络基于模型结构分类的图神经网络1. 循环图神经网络(ResGNNs)2. 卷积图神经网络基于谱域的ConvGNNs(Spectral-based ConvGNNs)基于空域的ConvGNNs(Spatial-based ConvGNNs)谱域图卷积模型和…

Python遥感开发之FY的批量处理

Python遥感开发之FY的批量处理0 FY遥感数据1 批量提取数据2 批量拼接TIF数据3 批量HAM转WGS投影(重要)4 批量掩膜裁剪介绍FY数据的格式,以及FY数据的批量提取数据、批量拼接数据、批量投影转换、批量掩膜裁剪等操作。本博客代码参考《 Hammer…

MySQL SQL优化 【建议熟读并背诵】

插入数据 批量插入数据 insert into tb_test values(1,Tom),(2,Cat),(3,Jerry);手动控制事务 start transaction; insert into tb_test values(1,Tom),(2,Cat),(3,Jerry); insert into tb_test values(4,Tom),(5,Cat),(6,Jerry); insert into tb_test values(7,Tom),(8,Cat…

在Windows中使用Linux命令安装这款软件就可以

由于平时经常使用Linux命令,所以导致在Windows的cmd中输入命令的时候经常打错,提示不是内部或外部命令,也不是可运行的程序。 那么有办法将补全cmd命令,使Linux中的命令在Windows中也能使用呢? 下面我来讲解如何在Win…

微服务架构-服务网关(Gateway)-服务网关在微服务中的应用

服务网关在微服务中的应用 我们将目光转向Spring Cloud应用的外围,讨论微服务架构下的各个模块如何对外提供服务。 1、对外服务的难题 微服务架构下的应用系统体系很庞大,光是需要独立部零的基础组件就有注册中心、配置中心和服务总线、Turbine异常聚…

【版本控制】Github同步Gitee镜像仓库自动化脚本

文章目录Github同步Gitee镜像仓库自动化脚本前言什么是Hub Mirror Action?1.介绍2.用法配置步骤1.生成密钥对2.GitHub私钥配置3.Gitee公钥配置4.Gitee生成私人令牌5.Github绑定Gitee令牌6.编写CI脚本7.多仓库同步推送8.定时运行脚本总结Github同步Gitee镜像仓库自动…

Softmax和Cross Entropy Loss在分类问题中的作用

本文以三分类神经网络为例,讲解Softmax和Cross Entropy Loss在分类问题中的作用。 首先,对类别标签进行一位有效编码: y[y1,y2,y3]Ty[y_{1},y_{2},y_{3}]^{T}y[y1​,y2​,y3​]T yi{1,if(iy)0,otherwisey_{i}\left\{\begin{matrix} 1 ,& …

形式语言和自动机总结----正则语言RE

第3-4章正则表达式 正则表达式的设计举例 正则表达式的运算 正则表达式的优先级 举例 1.倒数第三个字符是1 (01)*1(01)(01) 2.不含有连续的0 (101)*(0) 3.含有000 (01)*000(01&a…

【算法LearnNO.1】算法介绍以及算法的时间复杂度和空间复杂度

目录 一、算法 1、算法概述 2、算法的5个特性 3、设计算法的标准 二、时间复杂度 1、时间复杂度的介绍 2、渐进时间复杂度的求法 3、计算时间复杂度的代码举例(平方阶示例) 4、时间复杂度排序 三、空间复杂度 一、算法 1、算法概述 算法就是解…

蔚来试水辅助驾驶订阅,NOP+能否吃蟹?

作者 | 德新 编辑 | 王博2021年的NIO Day上,随着当时ET7发布,蔚来最早宣布了智能驾驶订阅服务:NAD,月费680元。 两年后,辅助驾驶订阅模式终于开始落地:蔚来将从7月1日起,对NOP进行收费&#xff…

Nginx基础教程

Nginx 目标 Nginx简介【了解】 Nginx安装配置【掌握】 一、Nginx简介 Nginx称为:负载均衡器或 静态资源服务器:html,css,js,img ​ Nginx(发音为“engine X”)是俄罗斯人编写的十分轻量级的HTTP服务器,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/P…

索引优化、优化,你又是一个好MongoDB!!!博学谷狂野架构师

MongoDB索引优化 作者: 博学谷狂野架构师GitHub:GitHub地址 (有我精心准备的130本电子书PDF)只分享干货、不吹水,让我们一起加油!😄 索引简介 索引通常能够极大的提高查询的效率,如果没有索引&a…

【pg数据库状态监控相关参数展示】

1、最近项目中做了一个postgresql数据库监控状态功能的需求,需求如下图 2、研究好久,终于在pg数据库的官方文档中找到了相关视图参数, 文档连接如下: 数据库基础信息: http://www.postgres.cn/docs/9.3/functions-in…

开源项目:数据库表结构生成文档工具

目录 一、软件介绍 二、技术框架 三、功能介绍 四、代码展示 1、获取数据库信息部分代码 2、导出Html文档代码 五、运行效果 六、项目开源地址 一、软件介绍 今天给大家分享我自己编写的数据库表结构文档生成工具,方便大家在实际开发当中,可以很方便导出…

JAVA常用工具-文件操作相关IO

IO技术在JDK中算是极其复杂的模块,文件管理都依赖IO技术,而且都是编程的难点,想要整体理解IO流,先从Linux操作系统开始, Linux空间隔离 Linux使用是区分用户的,这个是基础常识,其底层也区分用…

【MQTT协议】使用Mosquitto实现mqtt协议(二):编写视频帧的发布/订阅服务

目录一、Mosquitto中的QoS定义QoS1和3区别二、安装base64库三、cjson简介四、主程序代码五、调用Mosquitto库使用的cmakelist更多内容详见 【MQTT协议】使用c实现mqtt协议(Mosquitto源码编译)一、Mosquitto中的QoS定义 MQTT协议中的QoS(Qual…

CLIP论文拜读及理解

文章目录一、clip论文阅读二、prompt1.除prompt之外的预训练语言模型2.prompt2.1. prompt定义2.2. prompt类型2.3. prompt重构2.3.1 prompt template2.3.2 Answer engineering2.4 多个 prompt的使用2.5 prompt的训练总结参考(博文、论文)一、clip论文阅读…

Windows系统安装WSL,并安装docker服务

背景 因为工作需要,要在电脑上执行sh脚本,并启动docker服务执行具体逻辑。因为我的电脑是windows系统,对做本任务来说,比较吃力,所以想到使用wsl,让windows电脑具有linux电脑的能力。 什么是 WSL 2 WSL 2 …

JVM的类加载的过程以及双亲委派模型

目录 1、加载 (加载字节码文件,生成.class对象) 2、验证(验证Class文件是否符合规范) 3、准备 (为静态变量分配内存并设置变量初始值) 4、解析(初始化常量池中的一些常量&#…

索引的分类

1.唯一索引 给表中某一列设置为了唯一约束(这列不允许出现重复数据)后,数据库会为将这一列设置索引,这个索引叫做唯一索引(主键那一列是一个特殊的唯一索引,不仅要满足唯一索引这一列不可以出现重复数据,而且这一列还…