海思Hi3516A上移植OpenCV

2021-09-24 11:19:47 字數 3193 閱讀 1178

最近新換了工作,工作中一項任務是將opencv移植到hi3516a平台上。這項工作涉及到很多步驟,中間可以說經歷了千難萬險,克服了種種艱難困苦,最終成功了!現將過程詳細寫出,一方面作為此段工作的總結和回顧,另一方面也使後來者能不必再經歷我所經歷的困難乃至苦難。

言歸正傳。這個任務需要很多步驟,下邊一步一步詳細說明。在詳述之前先將筆者的開發環境列出:win10系統上虛擬機器ubuntu14.04。

第零步:準備hi3516a環境。

第二步:編譯前的準備工作。

2. 建立build資料夾和output資料夾,命令如下:

$mkdir build

$mkdir output

3. 進入build資料夾,命令如下:

$cd build

第三步:編譯

關鍵性的步驟來了!在這裡,我把一些開始出錯的步驟也列出來,供遇到同樣問題的人參考。

1. 執行以下命令(這一步參考了步驟三中內容):

3. cmake完成後,執行make命令。

$make

4. 出現以下錯誤,如下圖所示:

提示找不到zlib.h。

sudo apt-get install zlib1g-dev

結果問題依舊。

6. 依然參考

中步驟四的內容,修改原始碼根目錄的cmakelists.txt,在514行ocv_include_directories($)的下邊新增一行內容:

ocv_include_directories(./3rdparty/zlib/)

之後再次重複步驟1-3。上面所引用的參考文章中說,到這一步,他就可以正確編譯通過,並最終生成相應檔案了。但是在我的環境下還是不行!雖然步驟4中找不到zlib.h的問題解決了,但是引入了新的更為棘手的問題!如下圖所示:

在網上查詢這個問題的解決方法,可就眾說紛紜了。有的說是標頭檔案被重複包含導致的;有的說是uclibc不支援ctype導致的;還有的說刪了build資料夾,從頭再來一遍就解決了的;最氣人的有乙個帖子,說最後改了幾個巨集定**決了,但是就不把具體怎麼改的寫出來......

沒有乙個方法有效……

一時間似乎卡住了,不能前行,也不能後退。世界似乎開始變得迷茫......

直到又進行了一種方法嘗試後,一絲曙光出現了!在這裡要特別提一下,也要特別感謝一下。

這個部落格(和上面引用的部落格應該是乙個作者)中提到,修改cmake的配置,也就是擴充了步驟1中的命令:

$cmake -d cmake_build_type=release -d cmake_install_prefix=../output -d cmake_c_compiler=arm-hisiv300-linux-gcc -d cmake_cxx_compiler=arm-hisiv300-linux-g++ -d build_shared_libs=off-d build_zlib=on-d zlib_include_dir=../3rdparty/zlib../

上邊紅色的部分是關鍵性的改變。這一次cmake之後,再make時就不再提示上邊的錯誤了,可以正確編譯通過!!!

7. 攻克了這一難題後,下邊就一馬平川了。

$make install

8. 最終在/output下生成了以下內容:

~/opencv/opencv-3.4.1/output$ ls

bin  include  lib  share

~/opencv/opencv-3.4.1/output$ ls lib/

libopencv_calib3d.a     libopencv_features2d.a  libopencv_imgcodecs.a   libopencv_objdetect.a   libopencv_stitching.a   libopencv_videoio.a     

libopencv_core.a        libopencv_flann.a       libopencv_imgproc.a     libopencv_photo.a       libopencv_superres.a    libopencv_videostab.a   

libopencv_dnn.a         libopencv_highgui.a     libopencv_ml.a          libopencv_shape.a       libopencv_video.a       pkgconfig/              

~/opencv/opencv-3.4.1/output$ ls include/

opencv/  opencv2/

至此,opencv在hi3516a的移植任務圓滿結束。

海思HI3516A 開發記錄(sdk環境搭建)

ubuntu 16 解壓sdk檔案 1 hi3516a sdk包位置 在 hi3516a v100r001 01.software board 目錄下,您可以看到乙個 hi3516a sdk vx.x.x.x.tgz 的檔案,該檔案就是hi3516a的軟體開發包。2 解壓縮sdk包 在linux伺服...

海思Hi3516智慧型分析引擎應用介紹

圖1 hi3516功能框圖 運動目標跟蹤是在運動目標檢測的基礎上,利用目標的有效特徵,使用適當的匹配演算法,在序列影象中尋找與目標模板最相似的影象位置,對目標進行定位。在實際應用中,運動目標跟蹤不僅可以提供目標的運動軌跡和準確定位目標,為下一步的目標行為分析與理解提供了可靠的資料 而且也可以為運動目...

海思hi3516下glog終端不顯示顏色

現象 移植了glog設定flags logtostderr true 但是終端輸出無顏色 原因 glog原始碼中檢測終端是否支援顏色,如果檢測不支援,則不顯示顏色 glog檢測終端是否支援顏色 在logging.cc檔案中,如下 returns true iff terminal supports ...