最近想在Rpi3上使用opencv ,網路上找到許多方法,有的版本不太符合經測試後將安裝過程紀錄於此以下設定以2017-06-21-raspbian-jessie版本為準 紅色粗體字表示設定項目 藍色粗體字表示指令 黑色粗體字表示編輯內容、選擇設定或輸入

一般若是要安裝現成的套件,可以直接下指令

sudo apt-get install libopencv-dev

不過得到的OpenCV版本可能較舊,如須叫新版本須自行下載原始碼自行編譯。

 

先更新系統

sudo apt-get update

sudo apt-get upgrade

 

安裝基本編譯工具

sudo apt-get install build-essential cmake gcc pkg-config git

sudo apt-get install libatlas-base-dev gfortran

 

安裝影像與視訊支援程式庫

sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

sudo apt-get install libxvidcore-dev libx264-dev

sudo apt-get install libgtk2.0-dev

 

安裝python以進行編譯工作

sudo apt-get install python2.7-dev python3-dev

 

下載opencv原始程式碼 (紅字為版本號碼)

cd ~

wget -O opencv-3.3.0.zip.zip https://github.com/Itseez/opencv/archive/3.3.0.zip

wget -O opencv_contrib-3.3.0.zip.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.zip

unzip opencv-3.3.0.zip.zip

unzip opencv_contrib-3.3.0.zip.zip

 

安裝pytyhon virtualenv工具

sudo pip install virtualenv virtualenvwrapper

sudo rm -rf ~/.cache/pip

 

設定執行環境編輯~/.profile檔案

echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile

echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile

echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile

 

執行以下指令讓.profile生效

source ~/.profile

 

建立pythonvirtualenv 環境

mkvirtualenv cv -p python3

 

若找不到mkvirtualenv可執行

source ~/.profile

 

每次重開機後須啟用virtual cv環境

source ~/.profile

workon cv

安裝成功的話,會看到提示符號前面多一個(cv),表示已在cv環境

 

安裝要使用的python package (大約需要10分鐘)

pip install numpy

 

開始進行編譯,須確認在 (cv) 環境下才能開始編譯 (啟用virtual cv環境)

cd ~/opencv-3.3.0/

mkdir build

cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE \

    -D CMAKE_INSTALL_PREFIX=/usr/local \

    -D INSTALL_PYTHON_EXAMPLES=ON \

    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \

    -D BUILD_EXAMPLES=ON ..

cmake會根據環境產生需要的makeflie,如無失敗訊息就可繼續進行make

make –j4

 

如果用4核心編譯失敗的話須清除後再重新用單核心編譯

make clean

make

 

建立安裝程式庫

sudo make install

sudo ldconfig

 

檢查版本是否正確

pkg-config --modversion opencv

 

以下根據python版本進行設定

 

設定Python 2.7檔案連結 (此步驟預設是不用做 )

檢查是否有cv2.so函式庫:

ls -l /usr/local/lib/python2.7/site-packages/

設定鏈結:

cd ~/.virtualenvs/cv/lib/python2.7/site-packages/

ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so

 

設定Python 3檔案連結 (此步驟預設是要做 )

檢查是否有cv2.cpython-34m.so函式庫:

ls -l /usr/local/lib/python3.4/site-packages/

改檔名以避免版本混淆:

cd /usr/local/lib/python3.4/site-packages/

sudo mv cv2.cpython-34m.so cv2.so

設定鏈結:

cd ~/.virtualenvs/cv/lib/python3.4/site-packages/

ln -s /usr/local/lib/python3.4/site-packages/cv2.so cv2.so

 

Python程式測試先下載測試影像watch.jpg

wget https://pythonprogramming.net/static/images/opencv/watch.jpg

 

編輯一個opencv_test.py程式

import cv2

img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)

cv2.imshow('image',img)

cv2.waitKey(0)

cv2.destroyAllWindows()

 

執行

python opencv_test.py

 

gcc程式測試編輯一個opencv_test.cpp程式

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <iostream>

using namespace cv;

using namespace std;

int main(int argc, char **argv)

{

    Mat image = imread("watch.jpg", CV_LOAD_IMAGE_COLOR);

    namedWindow("watch", WINDOW_AUTOSIZE);

    imshow("watch", image);

    waitKey(0);

    return 0;

}

 

 編譯:

g++ -lopencv_core -lopencv_highgui -lopencv_imgcodecs opencv_test.cpp

g++ `pkg-config --libs opencv` opencv_test.cpp –o opencv_test

 

執行:

./opencv_test

 

--安裝成功刪除無用檔案

cd ~

rm -rf opencv-3.3.0 opencv_contrib-3.3.0

rm opencv-3.3.0.zip opencv_contrib-3.3.0.zip

 

--參考資料

[1] https://www.pyimagesearch.com/2016/04/18/install-guide-raspberry-pi-3-raspbian-jessie-opencv-3/
[2] http://yehnan.blogspot.tw/2015/12/raspberry-piraspbianopencv.html

 

 

arrow
arrow
    文章標籤
    Rpi
    全站熱搜

    ghostyguo 發表在 痞客邦 留言(0) 人氣()