2016年12月9日 星期五

Install opencv in Raspberry Pi3

如果之前有安裝過opencv先卸載,在這種情況下,它是作為使用包管理除去的OpenCV的包一樣簡單。例如,在基於Ubuntu Linux系統中你可以寫在你喜歡的終端下面的命令

sudo apt-get remove libopencv
sudo apt-get remove opencv
如果您已經從源代碼安裝(使用make / make安裝):
在這種情況下,make命令應該已經為您創建一個卸載配置文件。所以要去除OpenCV的,去你已經編譯OpenCV的文件夾(你曾呼籲使這個地方/ make install的),並執行以下命令:

sudo make uninstall
注意: 如果你不記得怎麼有你安裝了OpenCV的,或沒有上述方法為你工作,你可以用下面的命令來刪除具有是與OpenCV的任何文件。請注意,刪除文件可能是危險所以這樣做對你自己的風險!我不承擔責任!🙂
sudo find / -name "*opencv*" -exec rm -i {} \;
sudo ldconfig && sudo ldconfig -vp


先檢查是否有足夠的空間
df -h

更新系統
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo reboot
安裝開發工具
sudo apt-get install build-essential cmake cmake-curses-gui pkg-config
安裝需要的函式庫
sudo apt-get install \
libjpeg-dev \
libtiff5-dev \
libjasper-dev \
libpng12-dev \
libavcodec-dev \
libavformat-dev \
libswscale-dev \
libeigen3-dev \
libxvidcore-dev \
libx264-dev \
libgtk2.0-dev

  圖檔格式
  libjpeg-dev \
  libtiff5-dev \
  libjasper-dev \
  libpng12-dev \ 


音訊、視訊的編碼、錄製、串流
  libjpeg-dev \
  libtiff5-dev \
  libjasper-dev \
  libpng12-dev \

安裝GTK
libgtk2.0-dev


Video4Linux


Python通過picamera模塊管理Raspberry的攝像頭,你也可以在OpenCV中使用這個module,但你必須抓取圖像到numpy.array然後將array映射到OpenCV Mat。

要使用標準抓取循環cv2.VideoCapture(0),raspicam需要Video4Linux驅動程序


  1. 檢查先決條件
    1. Enable the camera
    2. Set large memory for gpu_mem (In Advance Options > Memmory Split set 128 min)
    3. sudo raspi-config


  2. 安裝V4L函式庫
  3. sudo apt-get -y install libv4l-dev v4l-utils
  4. 啟動內核(開機一定要加此行)可以自行加再開機腳本
  5. sudo modprobe bcm2835-v4l2
  6. 測試module
  7. v4l2-ctl --list-devices
成功的話應該有以下訊息

其他函式庫
sudo apt-get install libatlas-base-dev gfortran
安裝python Install python-dev & numpy
sudo apt-get install python2.7-dev python2-numpy
sudo apt-get install python3-dev python3-numpy
 安裝OpenCV優化的開發工具
sudo apt-get install libatlas-base-dev gfortran
下載OpenCV的原始檔,這次安裝的是 3.1.0
 cd ~
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
unzip opencv.zip
下載 opencv_contrib 函式庫
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
unzip opencv_contrib.zip
安裝 Python 的套件管理程式 pip:
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
安裝 numpy Python 陣列運算的數學函式函式庫
pip install numpy
再解壓縮目錄裡新建build資料夾為工作目錄
cd opencv-3.1.0/

mkdir build

cd build
先執行cmake產生建置需要的設定檔
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D BUILD_WITH_DEBUG_INFO=OFF \
-D BUILD_DOCS=OFF \
-D BUILD_EXAMPLES=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_opencv_ts=OFF \
-D BUILD_PERF_TESTS=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.1.0/modules \
-D ENABLE_NEON=ON \
-D WITH_LIBV4L=ON \
../

成功的話可以看見以下訊息:
如果你喜歡我們的默認配置,你可以跳過下一段
使用cmake gui查看/修改配置 您可以從上面更改一些命令行開關,或者可以使用ccmake配置所有可用選項



當你完成後按c鍵進行配置。如果沒有錯誤發生,按q生成makefile

建立 Opencv
make -j4
100%可以看到


Install Opencv
sudo make install 

執行指令更新程式庫:
 
sudo ldconfig 

檢查OpenCV的版本:
 
pkg-config --modversion opencv 

測試一下吧XD

#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("lena.jpg", CV_LOAD_IMAGE_COLOR);
Mat imagegray = imread("lena.jpg", CV_LOAD_IMAGE_GRAYSCALE );//always convert image to the grayscale
namedWindow("image",CV_WINDOW_AUTOSIZE);//AUTOSIZE
namedWindow("imagegray",CV_WINDOW_NORMAL);//Custom sizes
imshow("image",image);
imshow("imagegray",imagegray);
resizeWindow("imagegray",320,240);
waitKey(0);
return 0;

}
編譯指令:
g++ test.cpp -o test `pkg-config --cflags --libs opencv`

Referencn:

http://pklab.net/?id=392&lang=EN
http://lilgcheng.blogspot.tw/
http://storychen.blogspot.tw/2016/06/raspberry-pi-3-opencv.html
http://embedonix.com/articles/image-processing/installing-opencv-3-1-0-on-ubuntu/

沒有留言:

張貼留言