Opencv-2.4.9 在 mini2440 上的移植
1、前期準備工作
a. 安裝交叉編譯鏈
我使用的是arm-linux-gcc 4.3.2,解壓到目錄/usr/local/arm/4.3.2,然後在環境變數PATH中增加/usr/local/arm/4.3.2/bin
b. 安裝CMake
Opencv 2.0之後的版本,必須使用CMake建立Makefile。我使用的CMake版本是2.8.2,解壓到目錄/usr/local/cmake-2.8.2-Linux-i386,然後在環境變數PATH中增加/usr/local/cmake-2.8.2-Linux-i386/bin
2、編譯Opencv
1、解壓Opencv 2.4.9
2、建立build目錄,作為CMake編譯arm版本的工作目錄
3、在X環境下,執行cmake-gui(如果沒裝的話,按照提示安裝一個)
選擇原始碼目錄
選擇Build目錄:
點選Configure,保持generator為Unix Makefiles,選擇Specify options for cross-compiling,點選Next
Operating System填寫arm-inux
點選NEXT再跳出的介面中做如下設定
Operating System 選擇目標系統arm-linux
Compilers中選擇交叉編譯器的gcc和g++
Target Root選擇交叉編譯器的路徑
程式庫的Target Root填寫/usr/local/arm/,然後點選Finish
點選Finish按鈕,開始生成配置檔案,但是這個時候會報錯
System is unknown to cmake, create:
Platform/arm-linux to use this system, please send your config file to [email protected] so it can be added to cmake
這個是因為Operating System填寫的arm-linux不算Cmake能識別的目標系統,這裡可以忽略這個錯誤。但是這個時候還有其他錯誤
CMake Error at cmake/FindCUDA.cmake:763 (if):
if given arguments:
"CUDA_VERSION" "VERSION_GREATER" "5.0" "AND" "CMAKE_CROSSCOMPILING" "AND" "MATCHES" "arm"
Unknown arguments specified
Call Stack (most recent call first):
cmake/OpenCVDetectCUDA.cmake:26 (find_package)
cmake/OpenCVFindLibsPerf.cmake:24 (include)
CMakeLists.txt:468 (include)
應該是我的電腦裡沒有安裝CUDA的庫,因為後面的開發中也不會用到CUDA,所以我將 WITH_CUDA的鉤去掉,然後再點選一次Configure按鈕,看看還有沒有提示缺少哪些第三方庫,網上其他文章說WITH_TIFF要去掉,但是這裡沒有報錯就不管它了。同時可以將CMAKE_INSTALL_PREFIX改成你想要的路徑,這個路徑所opencv最後庫檔案和標頭檔案的安裝路徑。在不存在其他問題後點擊Generate生存Makefile檔案,如果前面第三方的問題沒有解決這裡是會報錯而無法生存Makefile。生成的Makefile檔案和Cmake配置檔案都在 Wher to build the binarier 中設定的資料夾下
修改預設配置,預設安裝目錄為/usr/local,由於我之前有裝x86版的opencv,所以對於交叉編譯的庫來說並不合適,所以我把CMAKE_INSTALL_PREFIX變數改為/usr/local/arm/
4、 點選Generate生成Makefile
(1)如果你現在make,是肯定會出錯的!(不修改,可能白等了至少15分鐘,前車之鑑)
../../lib/libopencv_core.so: undefined reference to `pthread_spin_init'
../../lib/libopencv_core.so: undefined reference to `pthread_spin_unlock'
../../lib/libopencv_core.so: undefined reference to `pthread_spin_lock'
../../lib/libopencv_core.so: undefined reference to `pthread_spin_destroy'
../../lib/libopencv_core.so: undefined reference to `pthread_once'
../../lib/libopencv_core.so: undefined reference to `clock_gettime'
../../lib/libopencv_core.so: undefined reference to `pthread_spin_trylock'
原因是找不到pthread連結庫,開啟資料夾下的CmakeCache.txt進行修改
//Flags used by the linker.(大概在194行附近)
CMAKE_EXE_LINKER_FLAGS:STRING=-lpthread -lrt
(2) opencv編譯OPENEXR時要用到libImath.so,
在配置介面要把build_opencvxr和with_opencvxr去掉,否則會出現這個問題。
/usr/lib/libImath.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[2]: *** [lib/libopencv_highgui.so] 錯誤 1
make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] 錯誤 2 make: *** [all] 錯誤 2
還要去掉build_opencv_ocl和with_opencl,否則會出下面的錯誤
../../lib/libopencv_ocl.so:undefined reference to 'dlopen'
還要去掉tiff庫的編譯
5、make
6、sudo make install
3、測試opencv庫是否安裝正確
還有一步特別關鍵 ,需要把/arm/opencv/lib 下所有的動態連結庫 拷貝到交叉編譯下/arm-non-linux-gnueabi/lib<span style="font-family:SimSun;font-size:14px;">#include "cv.h"
#include"highgui.h"
const char*picture = "lena.jpg";
int main(int argc,char** argv)
{
IplImage *pImage=cvLoadImage(picture,1);
cvNamedWindow("Test",CV_WINDOW_AUTOSIZE);
cvShowImage("Test",pImage);
cvWaitKey(0);
cvReleaseImage(&pImage);
cvDestroyWindow("Test");
}
</span>
<span style="font-family:SimSun;font-size:14px;">all:test
CFLAGS=-Wall
OPENCV_INCLUDE=-I /usr/local/arm/include/opencv
CC = arm-linux-g++
OPENCV_LINK =-L/usr/local/arm/lib -lcv -lcxcore -lhighgui -lpthread -lrt
%:%.cpp
#$(CC) `pkg-config opencv --libs` $(OPENCV_INCLUDE) $< -o [email protected] $(OPENCV_LINK)
$(CC) $(OPENCV_INCLUDE) $< -o [email protected] $(OPENCV_LINK)
.PHONY:clean
clean:
rm -f test
</span>
4、移植到mini2440開發板上
首先複製主機/usr/local/arm/lib//下面的全部.so檔案到嵌入式根檔案系統的/lib/目錄下,再複製我們編譯的test到嵌入式系統/opt/myworks/目錄下(並確保檔案test屬性為可執行),如果test可正常執行沒有報告缺少庫檔案,說明我們編譯的arm-linux版OpenCV庫已經可以正常使用。
相關推薦
Opencv-2.4.9 在 mini2440 上的移植
1、前期準備工作 a. 安裝交叉編譯鏈 我使用的是arm-linux-gcc 4.3.2,解壓到目錄/usr/local/arm/4.3.2,然後在環境變數PATH中增加/usr/local/ar
Ubuntu 14.04 配置OpenCv 2.4.9
-1 org sent release nbsp build echo opencv 2 時間 安裝工具 g++ 鏈接:http://www.cnblogs.com/LQLin168/p/6844593.html 下載OpenCv 2.4.9(官網地址):http://
3-opencv 2.4.9安裝及配置
技術 build bsp 安裝 -1 images http 9.png .cn 1- 2- 3- 4- C:\Program Files\opencv\build\x86\vc12\bin 5- 3-opencv 2.4.9安裝及配置
學習Opencv 2.4.9 (一)---Opencv + vs2012環境配置
-a class targe 貝爾 waitkey ron ini win font 作者:咕唧咕唧liukun321來自:http://blog.csdn.net/liukun321首先獲得最新的Opencv 2.4.9源代碼:opencv源代碼下載一、Opencv環
學習Opencv 2.4.9(二) ---操作像素
椒鹽噪聲 window align 是個 簡單 ++ ima opencv2 mar 作者:咕唧咕唧liukun321來自:http://blog.csdn.net/liukun321本質上說一張圖像就是由數值組成的矩陣。Opencv 2.x由 cv::Mat 這個數據
VS2010+Opencv-2.4.9的配置攻略
1、下載軟體 vs2010入門書籍,免積分下載 http://download.csdn.net/detail/u014112584/7325617 opencv2.4.0版本和一些例子,免積分下載 
ubantu14.04+ opencv-2.4.9+QT
總結一些大佬的經驗,加上自己親測可行。 一、永恆的第一步,先祭系統 sudo apt-get update sudo apt-get upgrade 二、工具準備 安裝cmake sudo apt-get install cmake sudo apt-get in
Opencv 2.4.9在Ubuntu下的配置與安裝
一、依賴包安裝 1. build-essential 軟體包,為編譯程式提供必需軟體包的列表資訊,這樣軟體包才知道標頭檔案、庫函式在哪裡。還會下載依賴的軟體包,安裝gcc/g++/gdb/make 等基本程式設計工具,最後才組成一個開發環境。 sudo a
【OpenCV入門教程之二】 一覽眾山小:OpenCV 2.4.8 or OpenCV 2.4.9元件結構全解析
毛星雲,網路ID「淺墨」,90後,熱愛遊戲開發、遊戲引擎、計算機圖形、實時渲染等技術,就職於騰訊互娛。 微軟最有價值專家 著作《Windows遊戲程式設計之從零開始》、《OpenCV3程式設計入門》 碩士就讀於南京航空航天大學航天學院(2013級碩士研究生),已於2016年三月畢業。本科
【OpenCV入門教程之一】 安裝OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 開發環境配置
毛星雲,網路ID「淺墨」,90後,熱愛遊戲開發、遊戲引擎、計算機圖形、實時渲染等技術,就職於騰訊互娛。 微軟最有價值專家 著作《Windows遊戲程式設計之從零開始》、《OpenCV3程式設計入門》 碩士就讀於南京航空航天大學航天學院(2013級碩士研究生),已於2016年三月畢業。本科
樹莓派安裝QT5+OPENCV-2.4.9學習筆記
感謝CoekJin在安裝QT5上的幫助 一、安裝QT5 開啟終端從源上下載QT5的開發環境和QTCREATOR的圖形介面。 sudo apt-get install qt5-default sudo apt-get install qtcreator 安裝
OpenCV 2.4.9 學習筆記(3)—— OpenCV自動為輸出陣列(矩陣)分配記憶體
OpenCV大部分時候會為OpenCV方法中的輸出資料(方法的引數)自動分配記憶體,所以如果一個方法的引數有一個或者多個輸入陣列(cv::Mat 例項)和一些輸出陣列時,OpenCV會自動為輸出陣列分配記憶體空間或者重新分配記憶體空間,記憶體的大小和資料型別由輸入陣列決定。如果需要的話,這個方法會通過其他
OpenCV 2.4.9 學習筆記(4)—— 畫素型別與Templates的限制使用
限制使用templates C++中的Templates使得介面機制非常好用,高效而且能夠保證資料與演算法的安全。但是過多地使用templates可能會增加計算時間和程式碼長度,有時候還能難區分介面和實現。在OpenCV中過多使用templates並不是一件好事,OpenCV的refman中提到Open
OpenCV 2.4.9 學習筆記(2)—— OpenCV記憶體自動管理
1、OpenCV函式中輸出影象的記憶體分配是自動完成的(如果不特別指定的話)。 2、使用OpenCV的C++介面時不需要考慮記憶體釋放問題。 3、賦值運算子和拷貝建構函式( ctor )只拷貝資訊頭。 上述部分內容參考了OpenCV的中文教程。(http://www.opencv
OpenCV 2.4.9 學習筆記(1)—— 基本功能結構
一些關於OpenCV(2.4.9版本)的學習筆記,作為記錄,以免自己忘了。 安裝與配置 OpenCV的下載、安裝以及在各個平臺(Windows/Linux等)配置網上有很多的資料,自己就不用存了。需要或者遇到問題的時候再說。 基本模組結構 OpenCV(Open Source Computer
在Ubuntu下安裝Opencv 2.4.9
Opencv 2.4.9在Ubuntu下的配置與安裝 每次學習新東西或者換新的電腦,最讓人頭疼的就是環境的安裝了。網上有一大堆教程,不過總地來講,比較混亂,有些甚至有誤導性,當然也不乏一些有質量的部落格。為了方便自己以後重複安裝以及能夠幫助到有需要的朋友,在此將相關有用的部落格
交叉編譯opencv-2.4.9問題記錄
目錄 目錄 前言 環境 交叉編譯 總結 補充 前言 從來不懂影象演算法,但是為了功能,只能硬著頭皮研究opencv,工作了才知道其實生活才剛剛開始,未來是坎坷而光明的吧! 本篇部
Mac下Xcode(4.6.1)配置Opencv(2.4.9)
1:安裝homebrew和cmake brew install cmake 2:安裝opencv brew tap homebrew/science brew install opencv 3.使用Xcode進行OpenCV專案開發 1.Open Xcode, ch
【轉】【OpenCV入門教程之一】 安裝OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 開發環境配置
本系列文章由出品,轉載請註明出處。 寫作當前博文時配套使用的OpenCV版本: 2.4.8、2.4.9、3.0 ( 2014年4月28更新OpenCV 2.4.9的配置。 2014年9月12更新OpenCV 3.0的配置 2014年9月12日本文第
Windows平臺安裝最新OpenCV-2.4.9,利用Eclipse、MinGW構建C++呼叫OpenCV開發環境
最近電腦重灌系統了,第一件事重灌OpenCV。這次直接裝最新版,2014-4-25日釋出的OpenCV2.4.9版本,下載連結:1、新建資料夾OpenCV2.4.9,然後將348M大小的opencv-2.4.9.exe開啟,路徑選到新建的這個資料夾,可以看到解壓出來有4個多G