1. 程式人生 > >【直搗黃龍】樹莓派安裝OpenCV 3.4.1

【直搗黃龍】樹莓派安裝OpenCV 3.4.1

首先把準備工作做好,先確保已經更換好源:樹莓派換源
首先說說配置:我的樹莓派是2018年11月份買的,系統是2018-11-13-raspbian-stretch
附上:樹莓派系統下載地址

本文程式碼均可直接複製進shell

1.安裝OpenCV 依賴包:

a. 更新軟體源 + 升級安裝包 + 升級韌體

sudo apt-get update
sudo apt-get upgrade

韌體較新或Ubuntu 則可忽略此步:

sudo rpi-update

b. 安裝構建OpenCV 相關的工具

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

其中包括build-essential、cmake、git和pkg-config

c. 安裝常用影象工具包

jpeg格式影象工具包:

sudo apt-get install libjpeg8-dev

tif格式影象工具包:

sudo apt-get install libtiff5-dev

jpeg-2000影象工具包:

sudo apt-get install libjasper-dev

png影象工具包:

sudo apt-get install libpng12-dev

d. 安裝視訊I/O包

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

e. 安裝gtk2.0

sudo apt-get install libgtk2.0-dev

f. 優化函式包

sudo apt-get install libatlas-base-dev gfortran

至此,OpenCV 依賴包已經全部安裝完成。

2. 編譯OpenCV原始碼的準備工作

a. 下載OpenCV

使用wget工具下載OpenCV 壓縮包到使用者目錄下:

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

解壓OpenCV:

unzip opencv-3.4.1.zip

下載OpenCV_contrib庫:

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

解壓OpenCV_contrib庫:

unzip opencv_contrib-3.4.1.zip

b. 進入解壓後的OpenCV 原始碼資料夾

cd opencv-3.4.1

c. 新建一個名為release的資料夾用來存放cmake編譯時產生的臨時檔案

mkdir release
cd release

d. 配置cmake編譯引數

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.1/modules \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D BUILD_EXAMPLES=ON ..

其中引數簡介:

引數 作用
CMAKE_BUILD_TYPE=RELEASE 編譯方式
CMAKE_INSTALL_PREFIX 安裝目錄
OPENCV_EXTRA_MODULES_PATH 載入額外模組
INSTALL_PYTHON_EXAMPLES 安裝官方python例程
BUILD_EXAMPLES 編譯例程

3. 正式開始編譯:

a. 編譯

此過程極為漫長,我一共編譯了4個小時!!!

sudo make

b. 安裝

sudo make install

c. 更新動態連結庫

sudo ldconfig

恭喜!您已成功安裝OpenCV!

下面就來利用一個簡單的Python 程式檢驗一下OpenCV 是否正常工作

# --coding:utf-8--
import cv2
import numpy as np
cv2.namedWindow("gray")
img = np.zeros((512,512),np.uint8)   #生成一張空的灰度影象
cv2.line(img,(0,0),(511,511),255,5)  #繪製一條白色直線
cv2.imshow("gray",img)               #顯示影象
                                             
while True:                          #迴圈等待,按q鍵退出
    key=cv2.waitKey(1)
    if key==ord("q"):
        break
cv2.destoryWindow("gray")

若OpenCV 正常工作,則螢幕顯示一條白色斜線:
在這裡插入圖片描述
最後說一句,在此我極度建議大家備份一下,不然花了那麼長時間安裝好,萬一出了點差錯,TF卡壞了,那真是…嗶了狗了