• Open Source Computer Vision Library

嵌入式ARM系統中安裝

Wikipedia,自由的百科全书

目錄

OpenCV庫編譯

./configure --host=arm-linux --without-gtk --without-carbon  --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig --enable-static --disable-shared --disable-apps CXX=armv4l-unknown-linux-g++ CPPFLAGS=-I/usr/include 
  • --host=arm-linux :指出交叉編譯arm平臺
  • --without-gtk:忽略gtk+2.0 windows
  • --without-carbon: 不使用Mac OS上的X庫
  • --without-quicktime
  • --without-1394libs
  • --without-ffmpeg
  • --without-python
  • --without-swig
  • --enable-static :生成靜態庫
  • --disable-shared:不生成動態庫
  • CXX=armv4l-unknown-linux-g++ : 指定編譯工具(建議用2.95.2或者2.95.3版本)
  • CPPFLAGS=-I/usr/include :OpenCV會用到一些dev的包,如png.h,jpeglib.h,大部分頭文件在/usr/include下。

如果在編譯時出現png.h: No such file or directory ,意即缺少開發包,比如在Debian下可以apt-get install libpng2-dev,或者到libpng的網站 http://www.libpng.org/pub/png/libpng.html ,編譯安裝開發包即可。

make 
make install
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

接著,根據需要在/usr/local/lib/pkgconfig/opencv.pc的Libs項中加入參數-lpthread、-ldl之類,例如

Libs: -L${libdir} -lcv -lcxcore -lcvaux -lml -lpthread -ldl

編譯常式

  • 編譯常式drawing.c
armv4l-unknown-linux-g++ `pkg-config --cflags --libs opencv`  drawing.c -o drawing

或者嘗試(某些情況下,順序問題可能引發undefined reference錯誤)

arm-linux-g++ drawing.c -o drawing `pkg-config --cflags --libs opencv`
  • 編譯修改後的攝像頭標定程式:
armv4l-unknown-linux-g++ `pkg-config --cflags --libs opencv`  calibration.cpp -o calibration

將生成的可執行程式拷貝到開發板上,運行。如果出現缺少libstdc++庫的情況,可以在arm編譯器目錄下的lib目錄中查找,拷貝到開發板中,並確保程式可以找到即可。

攝像頭驅動

以我現在所用網眼V2000為例子,內核選項加入OV511驅動,並且模塊載入。OpenCV程式中預設設備為/dev/video0 ,在程式中調用cvCaptureFromCAM函數可以直接獲取攝像頭,並採集圖像。

顯示

直接在要顯示的地方調用顯示驅動函數。

作者

  • 譚學科,大連理工大學碩士研究生,Email:xueketan@student.dlut.edu.cn
  • Shiqi Yu
Views
個人工具