2010年1月2日 星期六

OpenCV(2)下載與編譯for X86架構

1. 開發環境:
(1). CPU: Andes RISC CPU core_N12.
(2). 平台: ADP-XC5FF676 V1.1.
(3). Linux OS: Ubuntu9.04.
(4). Toolchains: AndeSight v1.3.3 for Linux.
(5). Embedded Linux2.6.18
(6). Qt Creator 1.3 IDE .
(7). Qt for embedded Linux 4.6.1.
2. 下載OpenCV for Linux版本,下載路徑如下所示.
http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.0/
3. 先編譯for X86架構,主要是先在Qt Creator下編譯開發程式,開啟〝Terminal〞先解壓縮輸入〝tar -xjf OpenCV-2.0.0.tar.bz2〞.4. 輸入〝cd OpenCV-2.0.0〞進入目錄.5. 輸入〝./configure --enable-static〞設定參數.6. 輸入〝make〞開始編譯.*注意: 編譯前要先使用〝Synaptic Package Manager〞安裝〝libgtk2.0-dev〞package.7. 輸入〝sudo make install〞安裝.8. 安裝完畢,測試程式,輸入〝cd sample/c〞至此目錄下.9. 輸入〝g++ `pkg-config opencv --libs --cflags opencv` drawing.c -o drawing〞編譯範例程式.
10. 輸入〝./drawing〞 執行範例程式.
11. 執行結果如下所示.


9 則留言:

  1. 你好,
    目前我在使用opencv時遇到了一些問題,

    當我輸入:
    g++ `pkg-config opencv --libs --cflags opencv` drawing.c -o drawing
    它顯示出:
    g++: pkg-config opencv --libs --cflags opencv: No such file or directory

    程式 drawing.c 也有在同一個資料夾裡
    請問該如何解決

    回覆刪除
  2. 1. 你要先確定編譯出所需要.so或是.a檔.
    2. 建議你可以使用下一個章節OpenCV(3),使用Qt Creator開發會比較方便.

    回覆刪除
  3. 您好,我編譯的時候會出現錯誤

    make[2]: Leaving directory `/home/user/OpenCV-2.0.0/apps'
    Making all in tests
    make[2]: Entering directory `/home/user/OpenCV-2.0.0/tests'
    make[3]: Entering directory `/home/user/OpenCV-2.0.0'
    make[3]: Leaving directory `/home/user/OpenCV-2.0.0'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/home/user/OpenCV-2.0.0/tests'
    Making all in samples
    make[2]: Entering directory `/home/user/OpenCV-2.0.0/samples'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/home/user/OpenCV-2.0.0/samples'
    Making all in data
    make[2]: Entering directory `/home/user/OpenCV-2.0.0/data'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/home/user/OpenCV-2.0.0/data'
    make[2]: Entering directory `/home/user/OpenCV-2.0.0'
    make[2]: Leaving directory `/home/user/OpenCV-2.0.0'
    make[1]: Leaving directory `/home/user/OpenCV-2.0.0'

    我也有裝libgtk2.0-dev不知道是哪裡出了問題呢? 謝謝

    回覆刪除
  4. 你是不是g++沒有安裝,請確認一下,因為在x86架構下編譯,通常都是不會有錯得.
    g++安裝請輸入"sudo apt-get install g++"就可以了.

    回覆刪除
  5. 我有裝g++下面是我下完configure的結果
    General configuration ================================================

    CXX: g++
    CXXCPP: g++ -E
    CPPFLAGS:
    CXXFLAGS:
    LDFLAGS:

    Install path: /usr/local/opencv/X86

    Debug flags
    Optimization flags -DNDEBUG -O3 -g -march=pentium4 -ffast-math -fomit-frame-pointer
    MMX/SSE/SSE2/SSE3: -mmmx -msse -msse2 -msse3
    OpenMP support: -fopenmp
    External BLAS & LAPACK: no

    HighGUI configuration ================================================

    Windowing system --------------
    Use Carbon / Mac OS X: no
    Use gtk+ 2.x: yes
    Use gthread: yes

    Image I/O ---------------------
    Use ImageIO / Mac OS X: no
    Use libjpeg: yes
    Use zlib: yes
    Use libpng: yes
    Use libtiff: yes
    Use libjasper: yes
    Use libIlmImf/OpenEXR: no

    Video I/O ---------------------
    Use QuickTime / Mac OS X: no
    Use xine: no
    Use gstreamer: no
    Use ffmpeg: no
    Use dc1394 & raw1394: no
    Use dc1394_v2 & raw1394: yes
    Use v4l: yes
    Use v4l2: yes
    Use unicap: no

    Wrappers for other languages =========================================

    SWIG
    Python yes
    Octave no

    Additional build settings ============================================

    Build demo apps yes

    Now run make ...

    是我有些套件沒裝,或者是其他什麼問題呢?

    回覆刪除
  6. 這是我在X86架構下configure的結果,跟你的有所不同,我的configure參數只有下"./configure --enable-static",如果你有增加參數,請先確認該package或是函式庫有無安裝.

    General configuration ================================================

    CXX: g++
    CXXCPP: g++ -E
    CPPFLAGS:
    CXXFLAGS:
    LDFLAGS:

    Install path: /usr/local

    Debug flags
    Optimization flags -DNDEBUG -O3 -g -march=pentium4 -ffast-math -fomit-frame-pointer
    MMX/SSE/SSE2/SSE3: -mmmx -msse -msse2 -msse3
    OpenMP support: -fopenmp
    External BLAS & LAPACK: no

    HighGUI configuration ================================================

    Windowing system --------------
    Use Carbon / Mac OS X: no
    Use gtk+ 2.x: yes
    Use gthread: yes

    Image I/O ---------------------
    Use ImageIO / Mac OS X: no
    Use libjpeg: yes
    Use zlib: yes
    Use libpng: yes
    Use libtiff: no
    Use libjasper: no
    Use libIlmImf/OpenEXR: no

    Video I/O ---------------------
    Use QuickTime / Mac OS X: no
    Use xine: no
    Use gstreamer: no
    Use ffmpeg: no
    Use dc1394 & raw1394: no
    Use dc1394_v2 & raw1394: no
    Use v4l: yes
    Use v4l2: yes
    Use unicap: no

    Wrappers for other languages =========================================

    SWIG
    Python no
    Octave no

    Additional build settings ============================================

    Build demo apps yes

    Now run make ...

    回覆刪除
  7. 您好,是因為我有安裝到ffmpeg套件的關係嗎?

    因為我看你的ffmpeg好像是no,如果不開啟ffmpeg是否之後就無法使用到影片或視頻方面的功能呢? 謝謝

    回覆刪除
  8. 不好意思,我想要順便請教一下,在AG101上使用opencv做影片方面的影像處理是否可行呢?
    因為我看您在編譯Andes平台時也沒開啟ffmpeg的選項,謝謝。

    回覆刪除
  9. 如果你要加入FFmpeg影音轉檔程式,需先移植此程式,之後再由configure加入參數路徑,因為我是使用預設值,因此沒有加入.

    AG101要攝取影像,建議使用網路IP cam,範例如下所示,
    http://andescore.blogspot.com/2009/06/embedded-linux-qt4-8qt-creator-embedded.html

    ,IP cam所使用的是mjpeg,預設的參數已有加入,因該是沒有問題.

    回覆刪除