最近想在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
建立python的virtualenv 環境
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
--參考資料
https://www.pyimagesearch.com/2016/04/18/install-guide-raspberry-pi-3-raspbian-jessie-opencv-3/http://yehnan.blogspot.tw/2015/12/raspberry-piraspbianopencv.html
沒有留言:
張貼留言