为什么要引入xfopencv
vivado本身集成了opencv库以及hls视频库了,opencv不能被综合导出为rtl电路,hls视频库的功能有所欠缺,因此引入xfopencv作为既可以被综合导出为rtl电路,也能够实现opencv丰富的功能。
2.软件环境
vivado 2019.1,包含vivado,hls,以及sdsoc套件。
3.下载
1.打开github直接搜索xfopencv,如图所示
2.点击master->tags->选择与本身vivado匹配的版本(我的版本是2019.1,所以选择第一个)
4.使用(xfopencv/examples/canny)
1.解压下载的文档,创建hls工程,右击source->add files,添加文件如如所示
2.右击test bench->add files,添加如下文件,其中im0.jpg在data文件夹
3.选中project->settings->syntheis 添加顶层文件,如图所示
4.然后选中xf_canny_accel.cpp文件,选择edit gflas dialog,用于添加xfopencv库,添加内容
-i -d__(双下划线)sdsvhls__(双下划线)。
5.然后选择simulation,对tb文件添加xfopencv库,方式同上,内容如下
-i -d__(双下划线)sdsvhls__(双下划线) -std=c++0x
5.综合以及c仿真
1.综合
由于xf_canny_accel.cpp文件中的xf_use_uram未被定义,删掉后综合才能不出错
原始代码
xf::canny(_src,_dst1,low_threshold,high_threshold); //xf::xfmat2axivideo(nms_output, _dst1); #pragma sds wait(1) //xf::axivideo2xfmat(_dst1, nms_output); xf::edgetracing(_dst1,_dst2); 更改以后的代码
xf::canny(_src,_dst1,low_threshold,high_threshold); //xf::xfmat2axivideo(nms_output, _dst1); #pragma sds wait(1) //xf::axivideo2xfmat(_dst1, nms_output); xf::edgetracing(_dst1,_dst2); //xf::xfmat2axivideo(edge_output, _dst2);} 2.c仿真
选择im0.jpg作为输入图片
原始图像:
opencv处理图像:
xfopencv处理图像:
以上为xfopencv的例子学习,关于xfopencv更加详细的介绍请参考xilinx官方文档ug1233
基于WLAN和LAN的混和组网实现移动机器人远程控制系统的设计
流量开关介绍
华芯微电子获苏州市知识产权强企培育工程成长性企业认定的殊荣
PLC对模拟量信号的处理过程
沉金板与镀金板之间的区别是什么
hls之xfopencv
区块链是扩展你的数字转换的关键因素
华为p50pocket缺点太多了
友达去年获利创10年新高,本钱足够面对竞争
关于目前连接器市场的发展形势分析
小帅智能机器人第六代,教材、硬件、系统全面升级
板级支持包给提嵌入式开发供软件功能选择
基带长什么样?英特尔基带肆意挑衅
5G技术助推自动驾驶商业化正呈加速落地之势
青莲安充-充电桩运营管理平台,助力企业新能源充电项目快速落地
盘点2018年全球智能手机面板出货排行
cems烟气在线监测系统的详细介绍
高通:预计第一财季中国营收环比增35%
PCB制造中,通孔、盲孔和埋孔的区别
安科瑞ARD3M电动机保护器在煤炭行业中的应用