在Raspbian上安裝OpenCV

在Raspbian上安裝OpenCV

硬體 Raspberry Pi 3

Raspberry Pi 3
SoC Broadcom BCM2837(CPU,GPU DSP和SDRAM、USB)
CPU ARM Cortex-A53 64位元 (ARMv8系列) 1.2GHz (四核心)
GPU Broadcom VideoCore IV[43], OpenGL ES 2.0, 1080p 30 h.264/MPEG-4 AVC高畫質解碼器
記憶體 1024 MB (LPDDR2)
影像輸出 畫面用RCA端子(PAL & NTSC)、HDMI,HDMI介面可使用14種解析度,分別從640×350到1920×1200之間
板載儲存 MicroSD卡插槽
網路介面 10/100Mbps 乙太網介面(RJ45介面),支援802.11n無線網路及藍牙4.1

軟體 OpenCV 3.1.0

OpenCV的全稱是Open Source Computer Vision Library,是一個跨平台的電腦視覺庫。OpenCV是由英特爾公司發起並參與開發,以BSD授權條款授權發行,可以在商業和研究領域中免費使用。OpenCV可用於開發實時的圖像處理、電腦視覺以及模式識別程式。該程式庫也可以使用英特爾公司的IPP進行加速處理。

OpenCV可用於解決如下領域的問題:

  • 人機互動
  • 物體識別
  • 圖像分割
  • 人臉識別
  • 動作識別
  • 運動跟蹤
  • 機器人
OpenCV 可使用
程式語言 C\C++、Python、Java、MATLAB/OCTAVE、C#、Ch、Ruby、CUDA
安裝環境 Windows、Android、Maemo、FreeBSD、OpenBSD、iOS、Linux、Mac OS等

OpenCV目前最新有2.4.13和3.1.0兩種版本,第2版的更新是為了讓以前的開發的程式能夠執行並慢慢轉換到第3版,因此目前以第3版(3.X.X)為主

OpenCV下載


安裝Raspbian

建置PI並安裝Raspbian(參考)


安裝OpenCV

1. 更新套件清單並升級:

1
2
3
sudo apt-get update
sudo apt-get dist-upgrade -y
reboot

update: 系統將現有的 Package 升級, 如果有相依性的問題, 而此相依性 需要安裝其它新的 Package 或 影響到其它 Package 的相依性時, 此 Package 就不會被升級, 會保留下來。

dist-upgrade: 可以聰明的解決相依性的問題, 如果有相依性問題, 需要 安裝/移除 新的 Package, 就會試著去 安裝/移除 它。 (所以通常這個會被認為是有點風險的升級)

-y:對所有詢問都作肯定的回答,同時不作任何提示

2. 安裝Opencv套件

  • 編譯器:
    sudo apt-get install build-essential
  • 必要套件:
    sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libv4l-dev
  • 選擇性套件:
    sudo apt-get install python-dev python-numpy libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev libtbb2 libtbb-dev
套件名稱 套件說明
libgtk2.0-dev 圖形視窗程式庫
libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libv41-dev 音訊視訊的編解碼、錄製、轉換、串流
python-dev python-numpy python相關
libjpeg-dev libpng-dev libtiff-dev libjasper-dev 圖片格式
libdc1394-22-dev IEEE 1934相機介面(請裝)
libtbb2 libtbb-dev TBB是C/C++平行處理程式庫,可讓執行速度加快,但raspbian沒有這套件

編譯器與必要套件一定要裝,選擇性套件可裝可不裝。

3.下載並解壓縮OpenCV(2選1)

  • 輸入指令

    1
    2
    wget https://github.com/Itseez/opencv/archive/3.1.0.zip
    unzip 3.1.0.zip
  • 官網下載
    unzip 3.1.0.zip

4.進入OpenCV資料夾,新增一個資料夾並進入

1
2
3
cd opencv-3.1.0
mkdir build
cd build

5.執行cmake生產建置需要的設定檔
cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_TBB=ON -D WITH_TBB=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..

TBB設置版本

設定成功

-D BUILD_TBB=ON TBB平行處理程式庫藉由這裡裝,但是版本通常較舊。
6.開始建置
make -j4

參數「-j4」可充分利用四個核心執行。
7.安裝
sudo make install
8.執行指令更新程式庫
sudo ldconfig
9.檢查OpenCV版本
pkg-config --modversion opencv

10.測試OpenCV(以C++為例,使用圖檔test.png)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(){

Mat image = imread("test.png", -1);
imshow("test", image);
waitKey(0);
return 0;

}

11.編譯和執行

  • 編譯(2選1)

    1
    2
    g++ -lopencv_core -lopencv_highgui -lopencv_imgcodecs tes.cpp
    g++ `pkg-config --libs opencv` test.cpp
  • 執行
    ./a.out


如出現錯誤如下
OpenCV : libopencv_core.so.2.4: cannot open shared object file: No such fileor directory
執行程式前請先輸入:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib


參考文章

http://yehnan.blogspot.tw/2015/12/raspberry-piraspbianopencv.html

0%