HLS_OPENCV库的安装

  借此机会来记录一下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
黑金教程

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
### 回答1: 这个错误是因为在UserController中使用了@Autowired注解注入依赖,但是在注入时发生了错误。具体原因是在UserController中使用了${pattern.dateformat}这个占位符,但是Spring容器中找不到对应的值。可能是因为没有在配置文件中定义该占位符的值,或者是定义了但是没有正确加载配置文件。需要检查配置文件中是否正确定义了该占位符的值,并且确保配置文件被正确加载。 ### 回答2: 在Spring Framework的配置中,经常会使用占位符`${}`来指定一些变量,这些变量的值会在运行时从配置文件中获取。在出现上述错误时,通常是因为在配置文件中没有找到对应的占位符。具体地说,就是在配置文件中使用了`${pattern.dateformat}`这个占位符,但是没有在配置文件中指定其对应的值。因此,在运行时,Spring框架无法从配置文件中获取这个占位符的值,导致出现了错误。 错误信息中提到了`usercontroller`,这是由于在UserController类中使用了自动注入的方式获取了某个被标记为`@Value`的属性,而这个属性的值就是`${pattern.dateformat}`。当Spring框架启动时,会尝试将这个占位符的值注入到UserController类中,但是由于没有找到对应的值,所以注入失败,最终导致出现错误。 要解决这个问题,可以通过在配置文件中进行相应的设置来指定占位符的值。例如,在`application.properties`文件中添加一行配置:`pattern.dateformat=yyyy-MM-dd HH:mm:ss`,就可以为`${pattern.dateformat}`指定一个默认的值了。另外,也可以通过在代码中使用`@Value`注解来指定占位符的值,如`@Value("${pattern.dateformat:yyyy-MM-dd HH:mm:ss}")`。这里的`:`表示如果找不到对应的配置,就使用默认值`yyyy-MM-dd HH:mm:ss`。这种方式比较灵活,可以为不同的环境指定不同的配置,使程序更加可配置化。 ### 回答3: 这个错误产生的原因是Spring注入依赖时在${pattern.dateformat}取不到属性。${}中的“pattern.dateformat”实际上是一个属性占位符,在配置文件中找到与其对应的属性进行替换。这个错误有可能是配置文件中没有声明该属性,或者在运行时在配置bean时没有通过正确的方式传递参数。 首先,需要检查配置文件中是否声明了“pattern.dateformat”属性,并且是否拼写正确。如果没有声明,需要先在配置文件中将该属性声明。如果拼写错误,在${}中取不到正确的属性名。 如果配置文件中声明了该属性,需要看看引用该属性的地方是否能够正确地引用到该属性。在上述错误中,问题出现在UserController类上,因此需要检查UserController类是否有一个@Value("${pattern.dateformat}")注解或者其他方式通过IOC容器注入属性。如果UserController是通过构造函数注入的,那么在构造函数中要确保传递了正确的参数。 总之,该错误通常是由于配置文件中找不到或指定的属性与要注入的bean不相匹配引起的。通过检查配置文件和bean的注入方式,可以解决这个错误。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值