天天看點

海思AI晶片(Hi3519A/3559A)方案學習(十二)移植opencv343到hi3519A

前言

将opencv移植到某個平台,無非就是用該平台對應的編譯器将opencv源代碼編譯成so庫。 這裡的target平台是hi3519A,是以得用交叉編譯器arm-himix200-linux交叉編譯器。

準備工作

1)安裝交叉編譯器,這個海思SDK說得很明白,也可以參考我之前的系列(三)Ubuntu18.0.4上編譯Hi3519AV100 uboot和kernel

2)在ubuntu上安裝cmake-gui:  sudo apt-get install cmake-gui

3)下載下傳opencv及contrib源代碼

運作cmake

運作cmake-gui,彈出如下界面,并輸入源代碼和cmake build出來的目錄。注意,第二個目錄(build_hi3519A)是自己手動建立的。

海思AI晶片(Hi3519A/3559A)方案學習(十二)移植opencv343到hi3519A

點選configure,首先要選擇交叉編譯器平台,如下圖所示。

海思AI晶片(Hi3519A/3559A)方案學習(十二)移植opencv343到hi3519A

 點選finish後會configure一會直到成功。

選擇install_prefix。 install_hi3519A也是自己建立的,路徑可改。後面的make install 會把編譯好的opencv libs拷貝到該目錄下。

海思AI晶片(Hi3519A/3559A)方案學習(十二)移植opencv343到hi3519A

将opencv_contrib子產品也編譯進來

海思AI晶片(Hi3519A/3559A)方案學習(十二)移植opencv343到hi3519A

為防止後續源代碼編譯錯誤,還得加上下面配置 

海思AI晶片(Hi3519A/3559A)方案學習(十二)移植opencv343到hi3519A

保險起見,添加交叉編譯器root 目錄

海思AI晶片(Hi3519A/3559A)方案學習(十二)移植opencv343到hi3519A

配置完成後點選generate來生成可編譯得opencv代碼。 

編譯

 進入build_hi3519A目錄 敲入指令: make -j8

編譯過程中會遇到下面編譯錯誤

海思AI晶片(Hi3519A/3559A)方案學習(十二)移植opencv343到hi3519A

解決辦法如紅框所示(common.cc)

海思AI晶片(Hi3519A/3559A)方案學習(十二)移植opencv343到hi3519A

測試

編譯成功後,可以寫如下一個小程式在海思平台上運作來測試opencv移植是否成功

海思AI晶片(Hi3519A/3559A)方案學習(十二)移植opencv343到hi3519A

編譯指令如下,另外要注意得是,需要将libopencv_world.so拷貝到闆子系統目錄/lib下

海思AI晶片(Hi3519A/3559A)方案學習(十二)移植opencv343到hi3519A

繼續閱讀