-
為什么要引入xfopencv
vivado本身集成了opencv庫以及hls視頻庫了,opencv不能被綜合導(dǎo)出為RTL電路,hls視頻庫的功能有所欠缺,因此引入xfopencv作為既可以被綜合導(dǎo)出為RTL電路,也能夠?qū)崿F(xiàn)opencv豐富的功能。
2.軟件環(huán)境
vivado 2019.1,包含vivado,hls,以及SDSOC套件。
3.下載
1.打開github直接搜索xfopencv,如圖所示

2.點(diǎn)擊master->tags->選擇與本身vivado匹配的版本(我的版本是2019.1,所以選擇第一個(gè))

4.使用(xfopencv/examples/canny)
1.解壓下載的文檔,創(chuàng)建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庫,添加內(nèi)容
-I <路徑 to your xfopencv> -D__(雙下劃線)SDSVHLS__(雙下劃線)。

5.然后選擇Simulation,對(duì)tb文件添加xfopencv庫,方式同上,內(nèi)容如下
-I <路徑 to your xfopencv> -D__(雙下劃線)SDSVHLS__(雙下劃線) -std=c++0x

5.綜合以及C仿真
1.綜合
由于xf_canny_accel.cpp文件中的XF_USE_URAM未被定義,刪掉后綜合才能不出錯(cuò)
原始代碼
xf::Canny(_src,_dst1,low_threshold,high_threshold); //xf::xfMat2AXIvideo(nms_output, _dst1);//xf::AXIvideo2xfMat(_dst1, nms_output);xf::EdgeTracing(_dst1,_dst2);
更改以后的代碼
xf::Canny(_src,_dst1,low_threshold,high_threshold); //xf::xfMat2AXIvideo(nms_output, _dst1);//xf::AXIvideo2xfMat(_dst1, nms_output);xf::EdgeTracing(_dst1,_dst2); //xf::xfMat2AXIvideo(edge_output, _dst2);}
2.C仿真
選擇im0.jpg作為輸入圖片
原始圖像:

opencv處理圖像:

xfopencv處理圖像:

以上為xfopencv的例子學(xué)習(xí),關(guān)于xfopencv更加詳細(xì)的介紹請(qǐng)參考xilinx官方文檔ug1233
審核編輯 :李倩
-
RTL
+關(guān)注
關(guān)注
1文章
393瀏覽量
62435 -
OpenCV
+關(guān)注
關(guān)注
33文章
651瀏覽量
44486 -
HLS
+關(guān)注
關(guān)注
1文章
133瀏覽量
25634
原文標(biāo)題:hls之xfopencv
文章出處:【微信號(hào):Hack電子,微信公眾號(hào):Hack電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
蜂鳥處理器+OV5640攝像頭模塊開發(fā)
如何在vivadoHLS中使用.TLite模型
harmony-utils之CrashUtil,異常相關(guān)工具類
harmony-utils之DeviceUtil,設(shè)備相關(guān)工具類
harmony-utils之EmitterUtil,Emitter工具類
harmony-utils之FileUtil,文件相關(guān)工具類
harmony-utils之ImageUtil,圖片相關(guān)工具類
如何在Unified IDE中創(chuàng)建視覺庫HLS組件
使用AMD Vitis Unified IDE創(chuàng)建HLS組件
如何使用AMD Vitis HLS創(chuàng)建HLS IP
Vivado HLS設(shè)計(jì)流程
使用HLS流程設(shè)計(jì)和驗(yàn)證圖像信號(hào)處理設(shè)備

hls之xfopencv
評(píng)論