項目實戰:海思Hi3519AV100低分辨率作爲圖像處理,高分辨率作爲圖像加工輸出方案

不想去成爲一個偉大的程序員,只想成爲一個具有良好習慣的優秀程序員。

前言

這個是在離職時那兩天實現的,所以詳細流程文檔寫在公司電腦上來了,忘記拷出來了,所以這裏就稍微講一下如何用海思進行比較好的圖像處理操作。

正文

因爲我們這個項目對接第三方的圖像算法進行檢測,我們這邊需要獲取圖像的低分辨率圖像作爲它們圖像檢測處理的輸入,然後根據檢測結果進行圖像的渲染輸出。

一種方法是採用opencv來進行開發,這樣需要實現底層camera驅動的對接、圖像格式轉換、以及圖像的渲染,還有就是你需要去熟悉opencv的開發。

由於我對opencv只是有所瞭解,但進行開發不是很熟悉,由因爲這個時間比較急,所以優先考慮基於海思平臺的開發。具體方案我我就用文字描述了,因爲開發環境都在公司沒辦法搞到圖。

1.基於現有的sample_vio例程,如果你的攝像頭sensor的驅動海思已經提供了那麼我們之間就可以用,如果不是的話需要編寫相應的sensor,具體的詳細開發流程是在ISP的相關文檔中,也可以模仿已有的sensor驅動實現。

2.關於低分辨率圖像處理高分辨率圖像輸出,可以在sample_vio例程中基於vi雙通道的例程進行開發,像我在《項目實戰:海思Hi3519AV100利用硬件加速圖像格式轉換》中寫的,調用接口獲取其中一個vi通道的低分辨率原圖像進行圖像檢測處理,另一個通道綁定VPSS並獲取圖像,根據檢測結果判斷是否渲染輸出到vo模塊中。

3.圖像渲染,海思提供了很多硬件加速模塊以及視頻開發的API,又因爲我們這邊的渲染只是簡單的對檢測到的圖像進行標識,所以我這邊就用海思VGS模塊的批量畫線功能對高分辨率圖像檢測到的位置進行畫矩形輸出。

4.如果需要用到opencv開發,需要將makefile中的c編譯器換成c++編譯器,然後需要修改海思例程中一些c++編譯器不能識別的寫法錯誤。

文章每週持續更新,原創雖短,確不容易,歡迎大家點贊關注,一起交流技術一起提升成長。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章