摘 要:Opecv是做圖像處理的常用視覺處理算法,本文介紹了其特點以及移植方法。
關鍵詞:Opecv;圖像處理;移植
中圖分類號:TP391.41 文獻標識碼:A 文章編號:1674-7712 (2013) 22-0000-01
Opecv對于做圖像處理的人應該很熟悉,OpenCV項目最早由英特爾公司于1999年啟動,致力于CPU密集型的任務,是一個包括如光線追蹤和3D顯示的計劃的一部分。OpenCV主要用于人機交互,物體識別,圖像分割,人臉識別,動作識別,運動跟蹤,機器人等。在應用圖像處理的世界或者說開源圖像處理的世界,Opecv是公認的比較好的圖像處理庫。
而且OpenCV是一個跨平臺的庫,OpenCV可以在Windows,Android,Maemo,FreeBSD,OpenBSD,iOS,Linux和Mac OS等平臺上運行。自然在嵌入式平臺上也可以成功移植。
一、Opencv主要有以下幾個特點
(1)高可移植性:這個就不多說了,上面有介紹;(2)高性能:OpenCV 中所有的算法都是基于封裝于IPL的具有很高靈活性的動態數據結構,而且其中有一半以上的函數在設計及匯編時被Intel公司針對其所生產的處理器進行了優化;(3)開放性:不管對于商業的還是非商業的用途,OpenCV都是完全免費的,其源代碼完全開放,開發者可以對源代碼進行修改,將自己設計的新類添加到庫中,只要設計符合規范,自己的代碼也可以被別人廣泛使用。
二、下面主要來講講Opencv的移植
主要運用的編譯環境為ubuntu 10.0.4,交叉編譯器為arm-linux-gcc 4.5.1,目標環境為友善之臂Tiny6410開發板。
我們借助cmake-gui進行交叉編譯。
首先在終端中調出Cmake-gui界面;
選擇源代碼目錄/home/6410/opencv/opencv-2.4.3/;
選擇Build目錄:/home/6410/opencv/opencv-2.4.3/build;
點擊Configure,保持generator為Unix Makefiles,選擇Specify options for cross-compiling,點擊Next,
Operating System填寫arm-linux;
C Compilers填寫opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc;
C++ Compilers填寫opt/FriendlyARM/toolschain/4.5.1//bin/arm-linux-g++
程序庫的Target Root填寫opt/FriendlyARM/toolschain/4.5.1/
然后點擊Finish。
默認安裝目錄為/usr/local,點擊Generate生成Makefile。
然后#make
但是僅僅是Opencv庫是不夠的,還必須移植一些依賴庫。
以下就是要移植的庫:llibz,libjpeg,libpng,libasm,libx264,libxvid,lffmpeg。
Libz的交叉編譯:
#./configure --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --shared
修改makefile
CC=arm-linux-gcc
AR=arm-linux-ar rc
RANLIB=arm-linux-ranlib
CDSHARED=arm-linux-gcc -shared -wl, -soname,libz.so.1,--version-script,zl
lib.map
#make
#make install
libjpeg的交叉編譯:
#./configure--host=arm-linux--prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi
--enable-shared --enable-static
#make install
libpng的交叉編譯
#./configure--host=arm-linux--prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --enable-static
#make
#make install
yasm的交叉編譯:
#./configure--host=arm-linux--prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --enable-static
#make
#make install
libx264的交叉編譯:
#CC=arm-linux-gcc ./configure --enable-shared --host=arm-linux --disable-asm--prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi
#make
#make install
libxvid的交叉編譯:
#cd build/generic
#./configure--prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi--host=arm-linux --disable-assembly
#make
#make install
ffmpeg的交叉編譯:
#./configure --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --disable-static --enable-gpl --enable-cross-compile --arch=arm --disable-stripping --target-os=linux --enable-libx264 --enable-libxvid --cc=arm-linux-gcc --enable-swscale
#make
#make install
然后只要把編譯好的庫拷貝到arm板的lib目錄下就可以了。
當然移植過程中會出現各種難以預料的問題。這些問題在實踐中才能發現和解決,用于實踐這樣水平才能提高。
參考文獻:
[1]方玫.OpenCV技術在數字圖像處理中的應用[J].北京教育學院學報(自然科學版),2011(01).
[基金項目]本文得到國家創新創業計劃編號GJ201210336015的資助。