當前位置:編程學習大全網 - 編程語言 - 如何在Vivado中充分利用OpenCV和HLS

如何在Vivado中充分利用OpenCV和HLS

本文通過對OpenCV中圖像類型和函數處理方法的介紹,通過設計實例描述在vivadoHLS中調用OpenCV庫函數實現圖像處理的幾個基本步驟,完成從OpenCV設計到RTL轉換綜合的開發流程。

開源計算機視覺 (OpenCV) 被廣泛用於開發計算機視覺應用,它包含2500多個優化的視頻函數的函數庫並且專門針對臺式機處理器和GPU進行優化。OpenCV的用戶成千上萬,OpenCV的設計無需修改即可在 Zynq器件的ARM處理器上運行。但是利用OpenCV實現的高清處理經常受外部存儲器的限制,尤其是存儲帶寬會成為性能瓶頸,存儲訪問也會限制功耗效率。使用VivadoHLS高級語言綜合工具,可以輕松實現OpenCV C++視頻處理設計到RTL代碼的轉換,輸出硬件加速器或者直接在FPGA上實現實時視頻處理功能。同時,Zynq All-programmable SOC是實現嵌入式計算機視覺應用的極好方法,很好解決了在單壹處理器上實現視頻處理性能低功耗高的限制,Zynq高性能可編程邏輯和嵌入式ARM內核,是壹款功耗優化的集成式解決方案。

1 OpenCV中圖像IplImage, CvMat, Mat 類型的關系和VivadoHLS中圖像hls::Mat類型介紹

OpenCv中常見的與圖像操作有關的數據容器有Mat,cvMat和IplImage,這三種類型都可以代表和顯示圖像,但是,Mat類型側重於計算,數學性較高,openCV對Mat類型的計算也進行了優化。而CvMat和IplImage類型更側重於“圖像”,opencv對其中的圖像操作(縮放、單通道提取、圖像閾值操作等)進行了優化。在opencv2.0之前,opencv是完全用C實現的,但是,IplImage類型與CvMat類型的關系類似於面向對象中的繼承關系。實際上,CvMat之上還有壹個更抽象的基類----CvArr,這在源代碼中會常見。

1.1 OpenCV中Mat類型:矩陣類型(Matrix)。

  • 上一篇:ANSYS案例——20例ANSYS經典實例
  • 下一篇:大學生就業會遇到哪些問題?謝謝!
  • copyright 2024編程學習大全網