2014年1月13日 星期一

在 Raspberry Pi 上安裝 OpenCV 逐步詳解


上圖是我使用 vncserver 遠端登入 Raspberry pi 的 X windows 介面,在
Raspberry pi 執行 OpenCV 靜態讀取圖檔。

OpenCV 安裝步驟如下:

1.  登入並切換成 root 使用者
  su

2.  安裝 OpenCV 編譯相關套件
  apt-get install build-essential
  apt-get install cmake
  apt-get install pkg-config
  apt-get install libgtk2.0-dev libgtk2.0
  apt-get install zlib1g-dev
  apt-get install libpng-dev
  apt-get install libjpeg-dev
  apt-get install libtiff-dev
  apt-get install libjasper-dev
  apt-get install libavcodec-dev
  apt-get install swig

3.  下載 OpenCV 原始碼
  請使用 wget 下載 或 自行到下列網址下載。(我的版本是 OpenCV 2.4.5)
  http://opencv.org/downloads.html

4.  解壓縮 並建立 編譯暫存資料夾
  cd ~
  tar -zxvf opencv-2.4.5.tar.gz
  cd opencv-2.4.5/
  mkdir release
  cd release/

5.  編譯及安裝 OpenCV, 本動作需要很長的時間 [請耐心等候]
  cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
  make
  make install

6.  配置必要的庫 sudo vim /etc/ld.so.conf.d/opencv.conf
  添加  /usr/local/lib 這句命令到文件中(或許會沒有文件,自行建立)

7.  安裝完成之後將套件載入
  ldconfig –v

8.  在 vim /etc/bash.bashrc 文件的末端添加以下 環境變數 並存檔。
  PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
  export PKG_CONFIG_PATH
   or
  export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig"

9.  確認套件版本及狀況
  pkg-config --modversion opencv

10.  執行測試確認套件是否可運作
  cd ~/opencv-2.4.5/release/bin
  ./opencv_test_core

11.  最後可以使用以下的 sample code 執行編譯與測試
//showImage.cpp
#include "highgui.h"
int main( int argc, char **argv )
{
    IplImage *img = cvLoadImage( argv[1] );
    cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
    cvShowImage("Example1", img);
    cvWaitKey(0);
    cvReleaseImage(&img);
    cvDestroyWindow("Example1");
    return 0;
}

12.  使用以下指令編譯
ps:這裏有一點需要注意:pkg..前面的小符號不是單引號,而是鍵盤 ESC 鍵下面那個鍵對應的符號
   g++ `pkg-config --cflags --libs opencv` showImage.cpp -o showImage
  或是
   g++ showImage.cpp -o showImage `pkg-config --cflags --libs opencv`
  最後如果還是不行,就必須要指定絕對路徑
   g++ showImage.cpp -o showImage -I /usr/local/include/opencv –lopencv_highgui -lopencv_core
  其他
   gcc `pkg-config opencv --libs --cflags opencv` -o main main.c
   gcc `pkg-config --cflags opencv` -o main main.c `pkg-config --libs opencv`

13.  執行程式
  ./showimage XXX.jpg

14.  安裝遠端 X window (vncserver) 相關套件 (選擇性安裝)
  sudo apt-get install tightvncserver

  PS : vncserver 如何使用,請參考以下這篇
     http://humanity-pure.blogspot.tw/2013/03/raspberry-pi-vnc.html

4 則留言:

  1. 請問安裝完後,能將原本的opencv資料夾刪掉嗎?

    回覆刪除
  2. 您好,我在"make install"後,順利安裝完成至100%,出現以下錯誤:

    CMake Error at cmake_install.cmake:40 (FILE)
    file INSTALL destination: /usr/local/lib/pkgconfig is not a directory


    Makefile:62 recipe for target 'install' failed
    make: *** [install] Error 1

    可以請教您如何解決嗎? 謝謝

    回覆刪除
  3. 我用b+的板子! 
    安裝 OpenCV 編譯相關套件 這部分都無法編譯!
    可以請問如何解決嗎?

    回覆刪除