[嵌入式資料] Linux下移植OpenCV + Qt 到ARM(Tiny6410)總結 轉
下面的文字比較多啊,主要是加入了很多自己的感慨啊,感嘆啊啥的,其實我覺得已經是罪簡單的方法了,我基本上把我遇到的問題全部羅列了,大家可以參考一下~其實很多問題都是在走彎路,我希望後面的人更順暢一點吧~
目的:將OpenCV2.0或者2.1+Qt移植到ARM上
目標板Tiny6410
PC系統VM1.2+Fedora9(用這個吧,方便)
-
1. Fedora安裝
Fedora9的包不容易下,不過我忘了我怎麼下的···迅雷貌似可以。
我使用的虛擬機器,注意必須要高於1.2的版本,只有他們才裡面有Fedora的支援。比較方便。就按照提示一步一步走就行了,建議給的空間大一點,預設是20G,給個40G沒問題。
第一個要解決的問題就是虛擬機器和PC機的檔案拷貝,大家可以參考網上的很多經驗,不要用VM tools,我發現傳輸檔案的時候它基本上傳輸不完全,我用的是網路連線,有兩種,在VM的設定裡可以找到,安裝Fedora的時候也會問你選擇Bridge還是NAT,我剛開始用的前者,但後來突然又用不了了,就把VM設定裡的改為了NAT,就可以了,至於具體的設定,友善的Fedora安裝文件裡有。
我使用Fedora的一個巨大的bug就是它居然只給我的根目錄留下了不到一個1G的空間,因為後面要求大部分軟體都安裝在/opt下,所以沒地方!!!!而我的/home資料夾下居然有38個G····我擦! 如果你碰到了這個,那告訴你,節約點用吧,還夠用的其實。~ 別聽教程的把很多軟體包都複製到/opt下就可以了,放自己的/home下吧~tar的時候改個源路徑就可以了 ~但是目標路徑按照手冊別變啊!!!
-
2. arm-linux-gcc安裝
我用的是arm-linux-gcc-4.5.1(友善之臂光盤裡有),各種版本基本上都嘗試過,網上建議在編譯Qt時用4.1.2版本,我沒下載到。安裝方法:
將安裝包用sd卡複製到自己的任何目錄下,注意我們用的是友善之臂提供的安裝包,所以它裡面有自己設計的路徑,這個非常重要,不能錯,它指定安裝在/opt下,我們要做的也很簡單,只需要將其解壓到根目錄下,它就可以自動安裝到正確的目錄。
建議用root使用者登入,方便!!!
可以直接雙擊安裝包開啟,安裝到根目錄下,解壓完檢查一下是不是
/opt/FriendlyARM/。。。。
這個目錄下。然後在PATH路徑中加入該安裝路徑,方法有兩種,一種是修改root的/root/.bashrc檔案,用gedit開啟,或者修改/etc/profile檔案,都行,在其中加入
export PATH=你的安裝目錄(應該為/opt/FriendlyARM/。。。。/bin):$PATH
即可,修改前者的話可能要logout重新登入一下,後者用
source /etc/profile
命令即可。
-
3. OpenCV移植
移植過2.0和2.1兩個版本,應該都問題,問題是路徑的設定。
l 2.0是用configure配置,網上有方法,我用的
http://blog.csdn.net/gfocean/archive/2011/04/22/6341155.aspx
這個網址上的配置,具體為
./configure --host=arm-linux --without-carbon --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig --without-gtk --enable-static --disable-shared --disable-apps
沒有指定安裝路徑,全部都安裝在/usr/local/下,也可以指定安裝路徑,見
http://blog.csdn.net/chennxi/archive/2010/12/17/6082039.aspx
l 2.1可以用CMAKE配置,我用的版本是cmake-2.8.4-Linux-i386.tar.tz,網上比較容易下載。
配置方式可以參考
http://blog.csdn.net/noodies/archive/2010/08/09/5798434.aspx
在第一次點configure的時候注意選擇第三個選項,然後就可以安裝網站說的配置了。
-
配置後輸入make(時間約15分鐘),用第二個網站的方法會中途出現錯誤,自己修改一下檔案在make一下就可以了
之後輸入make install(很快),就可以在安裝路徑下找到你的檔案了。
如果要在X86上用OpenCV,那麼就不能用上面的方法,因為上面都是為了編譯用到ARM上的庫,但是稍微修改方法也可以生成X86的庫。可以參考
http://blog.csdn.net/ranruoyu1003/archive/2010/12/26/6098847.aspx
將編譯好的庫用sd卡拷到6410的/lib下即可,如果執行有問題(opencv的錯誤執行時一般會給出讓你知道是什麼的錯誤),可以將檔案放到和你PC機上目錄路徑相同的地方。
注意一點:
6410的linux不支援OpenCV自己的Highgui,所以不能在目標板上使用cvNameWidow(),cvWaitKey(),cvShowImage()等顯示函式,但是可以利用裡面的cvLoad()等函式。正因為如此,安裝支援OpenCV的GTK相當複雜,我們選擇用Qt來顯示。
-
4. Qt安裝
Qt有很多版本,我說說我的經驗。在友善的手冊裡大家要配置linux開發環境需要裝的東西真是不計其數···我直接沒裝了,這也導致我即使按照指示手冊一步一步來,也出現了編譯的bug。特別是Qaptia2.2···我編譯了無數遍,都是到最後bug了···不能這樣啊!!!編譯一次基本一個小時~~~~時間就這麼浪費的啊!!!
我直接用的Qt4.7,這個按照手冊上面的方式編譯arm版本沒有問題~(我一開始用的ubuntu,編譯也成功,但是在板子上執行提示錯誤啊!這直接導致我又裝了個Fedora)。
安裝手冊編譯(賊慢啊)完後(注意手冊提醒的安裝目錄)壓縮拷到sd卡再解壓就可以了~我沒有按照手冊指示刪除來的那個Qt4.7,不過用Fedora編譯的話可以刪~之後你就可以檢驗你的庫是否移植成功了,祝你好運!
提醒一下,這個地方網上建議用arm-linux-4.1.2,因為很多人用這個編譯的Qt沒有segmentation fault,我沒用,自然就碰到了,不過還好,只有部分語句不能使用,我就用OpenCV代替了···
最後,注意PATH的修改。
-
5. Qt creator安裝
這個東西一定要去下那個422M東東啊,我給個網址
http://get.qt.nokia.com/qtsdk/
我當時下了個68M的吧,結果那個東西沒有SDK,結果就找不到我安裝的Qt4.7,老是提醒找不到可用的version。
這個東西是真好安裝,最喜歡了,和windows下一樣···好熟悉啊!!!
-
6. OpenCV和Qt結合的配置
要在Qt裡用OpenCV豈是一件容易的事?我差點因為這個就放棄了~~~(>_<)~~~~ 不過如果你沒遇到一下的問題,那你千萬別告訴我~~~不然會氣死我的!!!
1) Qt pro的配置
需要在你的Qt工程**.pro檔案里加入一些話,這個網址可以參考一下
http://www.linuxidc.com/Linux/2010-08/28049.htm
2) 最怕編譯時出現這個啊
http://www.cnblogs.com/lib/libcv.so,needed by****/*.so not foud (try use –rpath or –rpath-link)
這個其實是不是個問題呢,我自己解決後發現他也許不是個問題(不會影響到執行),但是可以解決,參考
http://blog.sina.com.cn/s/blog_602f87700100nyda.html
在LFLAGS中後面新增‘:’號再新增和前面一樣的那個東東···改到自己的路徑就可以了····
3) 最後的最後
被segmentation fault纏住了,我不加入OpencV的這些配置時,Qt自己的load(imag)很好使,我成功讓lena顯示出來了,但是加入OpenCV的東西而且按照上面配置好後,bug就來了···我一度愁苦啊!最後不得不放棄load,而用OpenCV的loadImage····哎 不知道這是何故啊!不過也可以用了,OpenCV能夠正常工作,Qt的顯示也正常。
4) OpenCV照片用Qt顯示的辦法
網上查一下很多,但是有個簡單的
http://blog.csdn.net/gfocean/archive/2011/04/22/6341155.aspx
最後就是將IplImage轉換為QImage格式
cvCvtColor(img,img,CV_BGR2RGB);
uchar *imgData=(uchar *)img->imageData;
image=new QImage(imgData,img->width,img->height,QImage::Format_RGB888);
哎,搞了這麼久,寫個經驗吧~ 不枉費了自己的熬夜~~~
相關推薦
[嵌入式資料] Linux下移植OpenCV + Qt 到ARM(Tiny6410)總結 轉
Linux下移植OpenCV + Qt 到ARM(Tiny6410)總結 轉CSDN 下面的文字比較多啊,主要是加入了很多自己的感慨啊,感嘆啊啥的,其實我覺得已經是罪簡單的方法了,我基本上把我遇到的問題全部羅列了,大家可以參考一下~其實很多問題都是在走彎路,我希望後面
arm-linux下的opencv移植
參考:https://blog.csdn.net/gatieme/article/details/49080355, https://blog.csdn.net/luotuo44/article/details/8958990, https://blog.csdn.net/xuluoho
Linux下安裝opencv並移植至ARM
目的: OpenCV是Intel支援的開源計算機視覺庫。它由一系列C函式和少量C++類構成,實現了影象處理和計算機視覺方面的很多通用演算法。它不依賴於其它的外部庫—儘管也可以使用某些外部庫。OpenCV使用BSD License,對非商業應用和商業應用都可以免
【ARM】嵌入式 ARM Linux 下移植 USB 藍芽、交叉編譯 bluez 各種版本
一、基本說明: 目前在嵌入式 Linux 下使用 USB 藍芽模組,比較好的解決方法就是使用 Linux 官方協議棧 bluez,這同時也是 PC 及 Android 手機上使用的藍芽協議棧,可以說還是比較靠譜的。 但是!不得不說,bluez 有多種版本,如
移植OpenCV+QT到ARM S3C6818開發板上(2)
續《移植OpenCV+QT到ARM S3C6818開發板上(1)》 安裝QT開發環境到宿主機 解壓qt5.7.0原始碼(時間稍稍有點長,為待會編譯捏了一把汗啊!) 解壓完之後進入原始碼根目錄,終端輸入: sudo ./configure -v -release
從零開始移植QT4.8.5之三--linux下交叉編譯QT執行庫
這篇文章要實現的目標是在linux下交叉編譯QT在嵌入式裝置OK6410的執行庫,最終在OK6410上執行QT演示程式。 1、觸控式螢幕庫檔案安裝tslib 首先如果嵌入式裝置上有觸控式螢幕,需要先移植tslib,這個不是本次的重點,所以我們就直接搭建編譯的時候需要的tsl
【Linux開發】OpenCV在ARM-linux上的移植過程遇到的問題4---共享庫中巢狀庫帶路徑【已解決】
【Linux開發】OpenCV在ARM-linux上的移植過程遇到的問題4—共享庫中巢狀庫帶路徑【已解決】 標籤:【Linux開發】 緊接著上一篇,我居然又嘗試了一下編譯opencv,主要是因為由於交叉編譯ARM-Linux,opencv,好像剛開始ma
飛凌嵌入式OK335xD Linux下Qt程式開機啟動 及 sh開機啟動
1. Qt程式開機啟動 系統自帶的Linux系統中,預設開機自啟動matrix_gui(自帶Qt測試程式),在/etc/init.d/qt.sh檔案中將其替換為想要啟動的Qt可執行檔案即可(該檔案需要在/forlinx/qt/bin/目錄下)。 2.Shell開機啟動 在/
Linux下打包釋出Qt應用程式
Linux下打包釋出Qt應用程式 Linux下打包釋出Qt應用程式 1. 編譯檔案 2.巧用指令碼檔案 新建檔案 新增指令碼 執行指令碼 打包釋出 Linux
linux 下 build opencv
apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libtbb2 libtbb-dev libjpeg-dev libp
Linux下CodeBlocks遠端除錯ARM程式環境搭建
Codeblocks:Release 8.02、宿主機:ubuntu10.04、開發板:嵌入式linux作業系統。 1 Codeblocks配置交叉編譯環境 如下圖所示,由上到下的選擇,1處直接選擇即可。2處是你交叉編譯器安裝位置,3 4 5 6 可以在你交叉編譯器安
linux下移植libcurl記錄
移植過程主要參考部落格: https://blog.csdn.net/wuzhiwuweisun/article/details/79129838 也借鑑了部落格:https://blog.csdn.net/zhouzhenhe2008/article/details/53768854
Linux下移植LCD驅動
使用Linux3.2.81核心 4.3寸LCD 修改arch/arm/mach-s3c2440/mach-smdk2440.c staticstruct s3c2410fb_di
linux下移植wifi之安裝hostapd及其操作(八)
安裝 hostapd 1. 下載,解壓 下載原始碼: http://w1.fi/hostapd/ tar -xvf hostapd-2.6.tar.gz cd hostapd-2.6/hostapd 2. 編譯、安裝 cp
linux下檢視opencv版本
命令如下: pkg-config --modversion opencv 庫檔案一般放在: /usr/local/lib (PS,系統裝的opencv版本太多,查詢也讓人頭疼) 標頭檔案一般
linux下移植wifi之安裝wpa_supplicant及wpa_supplicant其操作(六)
第五節:安裝wpa_supplicant及wpa_supplicant其操作 概念: wpa_supplicant : 可用於下述"認證/加密" All security modes have been verified to work (a
linux下移植wifi之概念介紹(一)
詳細介紹linux下移植wifi的步驟.docx 目錄 Linux系統下移植wifi模組,使其正常工作。包括兩部分內容,第一部分是識別無線裝置,並且正確安裝驅動程式。第二部分是選擇管理無線連線的方法。本文將介紹這兩部分內容。一、 背景配置w
Linux下基於opencv程式編譯時,出現undefined reference to `cv::SIFT::SIFT(int, int, double, double, double)
出現undefined reference to `cv::SIFT::SIFT(int, int,double, double, double)問題,和找不到類似的特徵描述子,還有和nonfree相關的函式,都是少裝了一個庫, 安裝如下: sudo add-apt-re
linux下移植wifi之安裝iw and iw操作(五)
第四節 安裝iw and iw操作 一、 先檢視README,獲取了三個有用點: 1. This is 'iw', a tool to use nl80211(iw需要nl80211) 2. To build iw, just enter 'make'
linux下cmake+opencv開啟攝像頭
一、必備條件: gcc、cmake 、opencv 1、安裝gcc: sudo apt-get install gcc 2、安裝cmake :sudo apt-get install cmake 3、安裝opencv 二、編寫CMakeLists.t