1. 程式人生 > >01--迅為4412-linux-arm板上opencv移植--終極解決方案(原創)

01--迅為4412-linux-arm板上opencv移植--終極解決方案(原創)

—本人由於需要做嵌入式圖形處理,需要用到opencv。網上的移植教程倒是很多,但是幾乎沒有可以正常使用的。
作者經過大量嘗試,最後發現,網上的文章,原創作者漏掉了極其非常關鍵的“glibc”庫問題的描述,原創作者的檔案系統可能使用自己的,其它轉載的大部分都沒有完全實現opencv的移植。
大部分工程師移植不成功的終極原因:opencv需要用到的是標準C庫,但是在嵌入式arm的檔案系統中,無論是從網上找的生成好的檔案系統,還是使用busybox製作,預設都不是標準的glibc。
作者將詳細過程整理成幾篇文件,可以供大家參考。
熟練工們會移植opencv和buildroot的話,可以跳過去其中幾篇文章。
和我一樣的小白,可以參考下buildroot和opencv移植,以及核心配置。
buildroot和opencv這部分網上教程其實非常多,有問題的比較少,是通用技術,主要要結合buildroot和opencv,構建支援opencv的執行環境,這個點還沒發現有人提出來。

作者的解決方法:使用buildroot,下載對應的glibc庫構建檔案系統,再移植opencv庫。從新作者檔案系統,然後移植到對應的開發平臺上,然後用作者提供的例程,幾乎不會出問題。
PS:如果大家發現看別人的文章移植不成功,通過作者這麼詳細的文章實現了移植,一定要點個贊喲!!*

以下是實驗平臺:
平臺:Exynos4412,效能還是不錯的。
在這裡插入圖片描述
實驗平臺:iTOP-4412-精英版,小傢伙做的還挺精緻。
在這裡插入圖片描述
編譯平臺:Ubuntu12.04;
編譯器版本:arm-4.4.1,懶人直接用的開發板自帶的;
buildroot版本:直接官網下載。過段時間就更新,大家下載最新的,應該不會出問題。
opencv版本:opencv2.4.9,opencv是通過buildroot下載的。
測試例程和原始碼:可以私信作者,留下郵箱,我懶,沒有github。

#1 使用buildroot生成檔案系統構建opencv環境
這部分介紹的是使用buildroot構建linux-opencv開發環境。
Buildroot是Linux平臺上一個構建嵌入式Linux系統的框架。整個Buildroot是由Makefile指令碼和Kconfig配置檔案構成的。
可以和編譯Linux核心一樣,通過buildroot配置,menuconfig修改,編譯出一個完整的可以直接燒寫到機器上執行的Linux系統軟體(包含boot、kernel、rootfs以及rootfs中的各種庫和應用程式)。
1.1 原始碼下載
從buildroot 官網 http://buildroot.uclibc.org/download.html獲取

buildroot 原始碼包,筆者這裡下的是buildroot-2015.05.tar.gz。
首先拷貝“buildroot-2015.05.tar.gz”到我們的Ubuntu虛擬機器上,然後在Ubuntu命令列,使用命令“#tar -xcf buildroot-2015.05.tar.gz ”,解壓完成後如下圖。
在這裡插入圖片描述