自从hls入门以来这几天都在搞如何使用opencv,不过过程实在有点艰辛,hls的bug感觉实在有点多,各种神奇的问题,我使用的是2013.4使用的是1个月的免费license,不知道其他童鞋们有木有遇到过。嘛,不管怎么样,虽然我摸索了各种使用方法,有的能行有的不行,不过按照官方的例程的结构果断是没问题的(也不能这么说)。
回归正题,首先放出我参考的几个文件:ug871、ug902、xapp1167(它的参考设计文件对我帮助最大)
还有这篇文章 https://www.eepw.com.cn/article/234670.htm
在hls中使用opencv大体的结构是这样的,在需要综合的文件中包含 hls_video.h文件,这里面有的就是能使用的图像处理相关的函数,在testbench中可以包含opencv或opencv2的头文件,在testbench中使用opencv读取本地图片或视频流,转换成axi的的流文件,使用测试函数处理,返回的也是axi流,将其转换成mat或iplimage等形式用opencv显示出来,这样就能看出被综合文件的功能性。在实际设计时testbench对应的就是摄像头、显示器这类器件,或者是arm部分(zynq器件),xapp1167中的一个图很好的说明了这个结构:
因为想要参加hls的专题赛,所以这里用harris角点检测来作为一个示例:
综合部分:
#include "test.h"
void test(AXI_STREAM& input,AXI_STREAM& output)
{
const int rows = 960;
const int cols = 640;</