在Raspberry Pi 2/B+上安裝Python和OpenCV

本文由 伯樂在線 - Den 翻譯,Daetalus 校稿。未經許可,禁止轉載!英文出處:pyimagesearch。歡迎加入翻譯小組。

我的Raspberry Pi 2昨天剛郵到,這傢伙看上去很小巧可愛。

這小傢伙有4核900MHZ的處理器,1G內存。要知道,Raspberry Pi 2 可比我中學電腦實驗室里大多數電腦快多了。

話說,自從Raspberry Pi 2發布以來,我收到了很多請求,要求我能寫一個在它上面安裝OpenCV和Python的詳細說明。

因此如果你想在Raspberry Pi啟動運行OpenCV和Python,就往下面看!

在博文的剩餘部分,我將提供在Raspberry Pi 2 和Raspberry Pi B+上的詳細安裝說明。

我也會說明每一步的安裝耗時。其中一些步驟需要較多的處理時間。舉個例子,在Raspberry Pi 2 編譯OpenCV花費大概2.8小時,在 Raspberry Pi B+上則是9.5小時。所以請你據此安排你的安裝吧。

最後,提醒一下我們會在PyImageSearch Gurus 計算機視覺課程中用到Raspberry Pi。我們的項目將會包括家庭監控應用,例如說房間裡面的運動檢測和人員跟蹤。

下面是一個運動檢測和跟蹤的簡單例子,當時我正打著電話在公寓裡面來回走動。

在 Raspberry Pi 2/B+上安裝OpenCV和Python

這裡假定你已經有了Raspberry Pi 2/B+,且已經安裝好。如果沒有的話,我建議你買一個,它們既便宜也好玩。

個人來說,我更願意多花一點錢從Canakit買。他們的物流很快也比較可靠,加之他們的 ready-to-go服務也很好。

好吧,我們開始OpenCV和Python的安裝

步驟0:

我們假定你已經打開Raspberry Pi 2/B+。打開終端,我們先更新和升級已安裝的軟體包,然後更新Raspberry Pi固件。

123 $ sudo apt-get update$ sudo apt-get upgrade$ sudo rpi-update

步驟1:

安裝所需的安裝工具和包:

1 $ sudo apt-get install build-essential cmake pkg-config

build-essential 和 pkg-config可能都已經安裝。以防萬一,我們還是將它們鍵入apt-get命令中。

耗時:

Raspberry Pi B+:小於2分鐘

Raspberry Pi 2:小於40秒

步驟2:

安裝必要的圖像I/O包,這樣你才可以讀入JPEG,PNG,TIFF等這些格式的圖像。

1 $ sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12-dev

耗時:

Raspberry Pi B+:小於5鍾

Raspberry Pi 2:小於30秒

步驟3:

安裝GTK開發庫,這個庫用來構建GUI。同時OpenCV中的highgui庫也需要它來在屏幕上顯示圖像。

1 $ sudo apt-get install libgtk2.0-dev

耗時:

Raspberry Pi B+:小於10分鐘

Raspberry Pi 2:小於3分鐘

步驟4:

安裝必要的視頻I/O包,OpenCV需要它們來讀入視頻文件。

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

耗時:

Raspberry Pi B+:小於5分鐘

Raspberry Pi 2:小於30秒

步驟5:

安裝OpenCV優化操作時所需庫。

1 $ sudo apt-get install libatlas-base-dev gfortran

耗時:

Raspberry Pi B+:小於2分鐘

Raspberry Pi 2:小於30秒

步驟6:

安裝pip:

12 $ wget https://bootstrap.pypa.io/get-pip.py$ sudo python get-pip.py

耗時:

Raspberry Pi B+:小於2分鐘

Raspberry Pi 2:小於30秒

步驟7:

安裝virtualenv和virtualenvwrapper

1 $ sudo pip install virtualenv virtualenvwrapper

然後,更新~/.profile文件如下:

12 export WORKON_HOME=$HOME/.virtualenvssource /usr/local/bin/virtualenvwrapper.sh

重新載入.profile文件:

1 $ source ~/.profile

創建你的計算機視覺虛擬環境

1 $ mkvirtualenv cv

耗時:

Raspberry Pi B+:小於2分鐘

Raspberry Pi 2:小於2分鐘

步驟8:

現在我們安裝Python 2.7開發工具:

1 $ sudo apt-get install python2.7-dev

注意:我們將使用Python2.7。因為OpenCV 2.4.X不支持Python 3,也不太清楚OpenCV 3.0的python介面什麼時候才能完善。所以我建議現在還是使用OpenCV2.4.X的好。

我們也需要安裝NumPy,因為OpenCV的Python介面通過Numpy的多維數組來表示圖像。

1 $ pip install numpy

耗時:

Raspberry Pi B+:小於45分鐘

Raspberry Pi 2:小於15分鐘

步驟9:

下載和解壓OpenCV:

123 $ wget -O opencv-2.4.10.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.10/opencv-2.4.10.zip/download$ unzip opencv-2.4.10.zip$ cd opencv-2.4.10

安裝:

123 $ mkdir build$ cd build$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON ..

耗時:

Raspberry Pi B+:小於3分鐘

Raspberry Pi 2:小於1.5分鐘

編譯OpenCV:

1 $ make

重要:確定你在cv虛擬環境中,OpenCV也要根據該環境中的Python和NumPy中進行編譯。否則的話,OpenCV就會和系統中的Python和NumPy編譯在一起,會產生各種問題

耗時:

Raspberry Pi B+:小於 9.5 小時

Raspberry Pi 2:小於2.8小時

最後,我們安裝OpenCV:

12 $ sudo make install$ sudo ldconfig

耗時:

Raspberry Pi B+:小於 3分鐘

Raspberry Pi 2:小於1分鐘

步驟10:

進行到這一步的時候,OpenCV已經應該已經安裝到/usr/local/lib/python2.7/site-packages中了。

但是為了在cv虛擬環境中使用OpenCV,我們先需要符合鏈接到我們的site-packages目錄:

123 $ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so$ ln -s /usr/local/lib/python2.7/site-packages/cv.py cv.py

步驟11:

最後,我們測試一下OpenCV和Python的安裝:

12345 $ workon cv$ python>>> import cv2>>> cv2.__version__"2.4.10"

OpenCV和Python已經成功安裝到你的Raspberry Pi了。

這是在我的Raspberry Pi上的運行例子,我ssh登錄到 Raspberry Pi,然後讀取和顯示一幅圖像。

總結

這篇博文中,我詳細介紹了如何在Raspberry Pi 2 /Raspberry Pi B+上安裝Python和OpenCV。也提供了他們的安裝耗時,請酌情考慮你的安裝。

隨著Raspberry Pi的升級,安裝指令可能有所變化。如果你遇到一些極端情況或安裝指令的變化,請隨時聯繫我。當然我也不能保證每封郵件都能回復,所以最好是將如何在 Raspberry Pi上安裝OpenCV和Python的方法總結成一個列表。

不久以後,我會講如何在Raspberry Pi操作其附加的camera。

在那之前,看看PyImageSearch Gurus計算機視覺課程。我們將在其中一些工程中用到Raspberry Pi,就比如說構建一個監控應用來進行房間內部的運動檢測和人員跟蹤。

關於作者: Den

查看Den的更多文章 ?

推薦閱讀:

圖像對比檢測
訓練隨機森林,每次結果都不同?
有沒有關於單目視覺導航的好項目可以學習學習?
OpenCV之二值化處理

TAG:Python | OpenCV | 安裝 |