利用樹莓派來安裝opencv從而來調動攝像頭工作(沒有坑,超超自己試過)


超超最近參加了學校里一位特別厲害的老師講的課(兩天,我就從一個小白然后了解了樹莓派以及Arduino這些我之前都沒有了解過的東西,由於結課的需要,我們需要自己設計一個創意以及完成作品)所以才有了這篇文章,來幫助大家解決下載opencv時遇到的坑(網上的流程好多都是有問題的)

首先,opencv是程序員鍾愛的開源計算機視覺庫,有強大的開源社區和一些內置函數,所以opencv跟樹莓派結合起來之后就可以干好多事,比如讀取來自樹莓派攝像頭的picamera視頻以及進行人臉識別等等,超超現在就在做這個事。

那么怎么安裝opencv呢?別着急,超超帶你一起看

一、首先配置好樹莓派的Raspbian操作系統

我使用的是樹莓派官網新推出的2018-11-13-raspbian,官網下載鏈接https://www.raspberrypi.org/downloads/raspbian/(現在好像有2019最新版了)但是不影響使用

咱們選擇安裝的是第一個:有桌面和推薦軟件的

Raspbian Stretch with desktop and recommended software

我們可以直接下載也可以利用種子的形式進行下載,最后下載后應該會出現4.98GB大小的東西,我們需要把它解壓成img格式(開始是zip)你會發現還是個壓縮包的形式,不要着急,就是這樣,然后我們將准備好的16GB以上的SD卡(用到讀卡器)進行格式化,接着我們就開始燒錄鏡像了,這要用到2-Win32DiskImager,所以我們可以到官網進行下載https://sourceforge.net/projects/win32diskimager/files/latest/download

接着咱們就運行這個2-Win32DiskImager,會彈出一個小方框,咱們點擊后面的一個類似文件夾的東西,然后瀏覽,將咱們的那個剛下載的img格式文件選擇,最后點擊下方的write,直到彈出write successfully就表明你燒錄鏡像成功了,接下來先不要着急拔卡,咱們要在SD卡的boot文件中打開后自己創建一個文檔叫ssh(千萬不要加.txt等格式),不用管它的提醒,我們繼續創建,這樣可以避免后面的一次插卡操作。

二、切換apt-get下載源和pip下載源

國外下載速度特別慢,所以我們需要切換到國內的清華源

sudo nano /etc/apt/sources.list

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

 

sudo nano /etc/apt/sources.list.d/raspi.list

deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui


sudo apt-get update
sudo apt-get -y upgrade

在第一行開頭加#,將內容給注釋掉,然后將下面的兩行給拷貝上,后面的一串就是出現的代碼,我們可以按ctrl+o按回車保存再ctrl+x退出到Nano編輯,接着執行下面的兩行代碼,會自動進行更新

接着給pip換源

sudo mkdir ~/.pip ls .pip sudo nano pip.conf
在打開的文件中輸入
[global]
timeout = 10
index-url =  http://mirrors.aliyun.com/pypi/simple/
extra-index-url= http://pypi.douban.com/simple/
[install]
trusted-host=
    mirrors.aliyun.com
    pypi.douban.com
接着保存並退出到Nano界面
在樹莓派的命令行中輸入
sudo raspi-config
用上下鍵和左右鍵進行切換光標
在彈出的界面中選擇1.change User Password修改密碼
然后4.Localisation Options
選擇I1 Change Locale進行選擇語言,打開后選擇中國,選擇時區的時候就默認是shanghai
接着5.Interfacing Options
選擇p1 Camera打開攝像頭
按下back后回到初始界面咱們再選擇7.Advanced Options選擇A1 Expand Filesytem將根目錄擴展到這個SD卡,充分利用SD卡的存儲空間
結束后咱們就Finish

安裝中文字體 sudo apt-get install fonts-wqy-zenhei

安裝中文輸入法fcitx及Google拼音輸入法(大約需要五分鍾) sudo apt-get -y install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin 安裝完畢,重啟即可。ctrl+空格切換為中文輸入法。哦,還要注意,那個咱們選擇的是美式英語

三、

 


咱們要用到官方的picamera,按圖中樣子進行安裝(提起來不掉下就可以了)
sudo nano /etc/modules執行此命令
再出現的藍色字幕后加上
bcm2835-v4l2
先按鍵盤上的ctrl+o,再按回車保存,再按ctrl+x退出nano編輯器回到命令行界面。
輸入
vcgencmd get_camera
raspistill -o image.jpg如果樹莓派的文件夾中有image照片的話,證明攝像頭安裝成功
三、

在樹莓派安裝運行在Python3上的OpenCV

1、安裝numpy

打開命令行界面,輸入以下命令,安裝Python科學計算庫numpy

sudo pip3 install numpy

2、在樹莓派設置中把根目錄擴大到整個SD卡

命令行界面輸入命令,進入樹莓派配置界面。用上下鍵和左右鍵切換光標位置

sudo raspi-config

第七行:Advanced Options

選擇Expand Filesystem,將根目錄擴展到這個SD卡,充分利用SD卡的存儲空間。如果不進行這一步,后續命令會出現卡死。退出設置界面,重啟樹莓派。(這里有提示框,問你是否重啟)

沒找到的話就sudo reboot

3、安裝OpenCV所需的庫

挨個運行下面八條命令。共需要七分鍾(注意倒數第三條命令中要安裝四個-dev軟件包)。

sudo apt-get install build-essential git cmake pkg-config -y
sudo apt-get install libjpeg8-dev -y sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y

4、下載OpenCV

 

用電腦在https://pan.baidu.com/s/182NYJzW1nCpnQ7ftSYYuSw#list/path=%2F下載這兩個壓縮包之后再用Fillzilla或者U盤等方法把文件傳輸到樹莓派的/home/pi/Downloads目錄下(一定不能錯)。載之后,把第一個壓縮包重新命名為opencv-3.4.0.zip,把第二個壓縮包重新命名為opencv_contrib-3.4.0.zip
解壓這兩個壓縮包
cd /home/pi/Downloads unzip opencv-3.4.0.zip unzip opencv_contrib-3.4.0.zip

5、設置編譯參數

設置編譯參數

cd /home/pi/Downloads/opencv-3.4.0 mkdir build cd build

6、編譯

最后一步,也是最重要的一步:編譯

保證樹莓派有至少5G的存儲空間,建議本命令用樹莓派桌面上的命令行工具運行,而不要使用遠程ssh連接。因為執行命令時間太長,中途如果ssh斷線的話無法得知是否已經安裝完畢。

cd /home/pi/Downloads/opencv-3.4.0/build make
靜待五個小時的編譯。注意,在此期間,樹莓派要供電充足,不要運行其它任務,以免因為內存不夠什么的報錯。
make命令執行完成之后,執行下面的命令,執行命令需要一分鍾:
sudo make install

7、在Python3上測試OpenCV

安裝好之后,在命令行中輸入python3,回車

import cv2

回車

cv2.__version__
opencv就是這么安裝的,接下來的人臉識別,超超只進行了第一步,

第1步:材料清單

主件:
樹莓派3
500 萬像素 1080p 傳感器 OV5647 迷你攝像頭模塊

第2步:打開樹莓派自帶的python編譯環境,打開后點擊“file”之后再new file

import numpy as np
  import cv2
   
  cap = cv2.VideoCapture(0)
   
  while(True):
  ret, frame = cap.read()
  frame = cv2.flip(frame, -1)
  gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
   
  cv2.imshow('frame', frame)
  cv2.imshow('gray', gray)
  if cv2.waitKey(1) & 0xFF == ord('q'):
  break
   
  cap.release()
  cv2.destroyAllWindows()
將這代碼在電腦上給設成txt后通過電腦上的win+R選擇mstsc進行遠端控制,將文件通過winscp傳到樹莓派上就可以啦,然后設置一個項目名稱就着ctrl+F5執行,你會發現有兩個界面正在將你的動態信息傳給樹莓派
好了,有些內容參考一些前輩的,希望能給大家帶來幫助,謝謝,不喜勿噴!
 
 
 
 
 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM