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