文章目录
安装OpenCV
首先是准备工作,包括下面三个软件的下载和安装
- 下载OpenCV安装包,双击解压,我将其解压在【D:\opencv\】文件夹中。解压后,其目录的【build】文件夹里,是编译好的环境。为了能够在vitis中调用,还需用Mingw64重新编译。
- 下载Ming-w64,将其解压,并将解压后的【bin】文件夹添加到环境变量。打开cmd,输入
gcc -v
,若出现gcc的版本信息,说明配置成功。 - 下载Cmake,若下载的压缩包,直接解压,并添加环境变量;若下载的msi文件,则双击安装。安装完成后,进入cmd,输入
cmake --version
,若返回cmake的版本信息,说明配置成功。
然后配置opencv的编译信息,打开cmake-gui
- 1 将源代码地址选为opencv的sources文件夹,我这里选择【D:\opencv\opencv\sources】
- 2 新建一个build文件夹,作为其输出二进制的路径,我这里是【D:\opencv\build】。
- 3 点击下方的【Configuration】按钮,将【Specify the generator for this project】设为【MinGW Makefiles】,并选择【Specify native compilers】->【Next】->将C和C++的Compilers分别设为gcc和g+±>【Finish】->等待配置生效。
- 我这里的gcc/g++路径分别是【D:\Libs\mingw64\bin\gcc.exe】和【D:\Libs\mingw64\bin\g++.exe】。
- 4 勾选【WITH_OPENGL】、取消勾选【 OPENCV_ENABLE_ALLOCATOR_STATS】->【Configure】->等待
- 5 出现【config done】之后,单击【Generate】->出现【Generating done】,说明编译配置文件已生成。
接下来,打开命令行,进入刚刚创建的【build】文件夹,相继输入
bash
D:\opencv\build>mingw32-make
# 出现一大堆进度信息,请等待
D:\opencv\build>mingw32-make install
执行完毕后,【build】下会出现【install】文件夹。
最后,配置环境变量,添加用户变量
变量名 | 变量值 |
---|---|
LD_LIBRARY_PATH | D:\opencv\build\install\x64\mingw\lib |
OPENCV_INCLUDE | D:\opencv\build\install\include |
OPENCV_LIB | D:\opencv\build\install\x64\mingw\lib |
并在path下新增两条路径
D:\opencv\build\install\x64\mingw\bin
D:\opencv\build\install\x64\mingw\lib
运行示例程序
Xilinx在Github上提供了Vitis_Libraries,其中的vision文件夹提供了一些机器视觉方面的案例代码。其中【L1】文件夹提供了基础的opencv API,并在其【examples】文件夹中,提供了许多示例程序。这些示例程序中,一般包含两对源文件和头文件,其中以【tb】结尾的文件,为测试文件;此外还有一个【config】文件夹,用于存放配置参数。
-
1 将【L1】文件夹解压到单独的文件夹,我将其放在了Xilinx文件夹下,并重命名为opencv,即路径变为【E:\Xilinx\opencv】。
-
2 新建一个Vitis HLS工程,并在工程路径下新建一个【src】文件夹,将【examples\houghlines】下的头文件和源文件复制进去,如下
xf_config_params.h
xf_houghlines_accel.cpp
xf_houghlines_accel_config.h
xf_houghlines_tb.cpp
xf_houghlines_tb_config.h -
3 在Vitis HLS中,右键【Source】->【Add Files】,选中【xf_houghlines_accel.cpp】。右键【Test Bench】->【Add Files】,选中【xf_houghlines_tb.cpp】。
-
4 点击【Project】->【Project Setting】
- 【Synthesis】->选中.cpp文件,将【Edit CFLAGS】设为下面的内容;【Simulation】->选中.cpp文件,将【Edit CFLAGS】、【Edit CSIMFLAGS】设为下面的内容。
c-ID:/opencv/build/install/include -IE:/Xilinx/opencv/include -std=c++14
-
勾选【Clean Build】,将【Linker Flags】设为
-L D:/opencv/build/install/x64/mingw/lib -llibopencv_imgcodecs4120 -llibopencv_imgproc4120 -llibopencv_core4120 -llibopencv_highgui4120 -llibopencv_flann4120 -llibopencv_features2d4120
-
将【Input Argument】设为测试图片的路径,我的图片路径为
E:/work/fpga/02_hls_cv/hls_cv/src/test.png
-
5 修改测试文件,将
xf_houghlines_tb.cpp
第316行和356行附近的#if
和#endif
注释掉。
执行【C Simulation】。执行完毕后,即可在...\solution1\csim\build
文件夹下,找到【out_floatref.png】、【outhls.png】这两个文件,即示例程序的运行结果。