由于筆者使用的是樹莓派Raspberry Pi OS 11,與目前所能查到的資料中的版本均不一致,搞了三天基本就是邊踩坑邊自學邊重裝系統,故以此文章記錄歷時三天終于成功在樹莓派上通過Opencv打開攝像頭的經驗,
(創作于2021年12月16日)
一、系統安裝
筆者使用的是樹莓派4B 32位,
我是直接在樹莓派的官網(Raspberry Pi OS – Raspberry Pi)下載的Raspberry Pi Imager,這是樹莓派官方的鏡像燒錄軟體,這個軟體很無腦,就只需要下載這個軟體,打開之后按照提示按鍵選擇就可以實作樹莓派最新的系統燒錄,

上圖就是目前版本Raspberry Pi Imager的界面,左邊的CHOOSE OS是用來選擇想要安裝的系統的,一般推薦初學者選擇第一個;右邊的CHOOSE STORAGE是用來選擇安裝的sd卡的,如果電腦只插了一個讀卡器,那就會只有一個選項,當這兩個選擇都完成后,第三個WRITE的按鍵就會被點亮,然后就點擊WRITE,注意!這時會發出一個需要格式化sd卡的指令,可能是英文版的,點yes,這個是從Raspberry Pi Imager這個軟體之中發出的,是為了在燒錄系統之前確保sd卡中沒有多余的檔案,特別注意!!在隨后的燒錄系統程序中,或者是在燒錄系統完成之后,還會出現一個需要格式化sd卡的提醒,應該是中文版的,這個是從PC端發出的,因為燒錄了鏡像系統的sd卡電腦是讀不出來的,所以它想格式化,這里千萬!千萬!!千萬!!!不要格式化!否則的話,之前燒錄的系統樹莓派是讀不出來的,在把sd插到樹莓派之后就會是一直開不了機的狀態,
在正常燒錄完系統,并將sd卡正常插入樹莓派之中后,將樹莓派接上電源(電源的電壓和電流一定要符合樹莓派的要求,否則會出問題),經過一段時間的等待就可以進入樹莓派的界面了,
初始界面的選擇按照自己的個人需求選擇,選擇完后點擊next鍵,直到出現wifi連接的界面,我的建議是將樹莓派連接上網路(有的教程會建議不連接,但是我這里建議連接,因為我最后成功了),然后next,會出現樹莓派要求更新軟體的提醒,更新!(不要管其他教程說的,更新!)
更新完后將樹莓派重啟,
再次進入樹莓派,打開終端輸入以下代碼(查看系統的版本)
$ uanme -a
或
lsb_release -a
會顯示以下畫面

如圖,我的樹莓派的版本是11的,所以這篇文章僅對同為11版本的樹莓派有用!!
二、環境
首先,是換源的問題,因為我看了很多的教程,在裝完系統之后第一步就是讓人換源,我在經歷了數次的換源失敗后,終于發現了原因:目前(2021年12月16日)的國內源都是樹莓派9,10版本的源,而目前11版本的源版號是bullseye,國內源還不完善,所以我每次安裝包的時候都會失敗,這里建議不換源,直接使用默認的官方源,
因為之前在樹莓派初始化的時候已經更新過一遍軟體了,所以就無需再更新了,
Raspberry Pi 11是自帶python3的,所以無需額外安裝,
擴大系統檔案,輸入如下命令
$ sudo raspi-config
選擇Advanced Options進入,然后選擇Expand Filesystem,然后選擇重啟,若沒有該選項則輸入
$ sudo reboot
重啟后安裝aptitude軟體包,輸入如下命令
& sudo apt-get install aptitude
這是一個很厲害的安裝命令,可以解決十分令人惡心的安裝包依賴問題,具體用法為
& sudo aptitude install 檔案名
對于aptitude推薦的方案可以進行yes和no的選擇,
安裝Cmake開發人員工具
$ sudo apt-get install build-essential cmake git pkg-config
安裝常用影像工具包
$ sudo aptitude install libjpeg9-dev libjasper-dev libpng-dev libglu1-mesa-dev libavcodec-dev libavformat-dev libxvidcore-dev libx264-dev libgtk2.0-dev libatlas-base-dev gfortran
建議分開安裝,方便選擇,(有的工具包在安裝程序中可能會顯示檔案被棄用,找不到等情況,可能是因為版本更新了,這些工具包在更新的時候把名字改了,可以根據系統的指示安裝最新的工具包)
更新numpy
$ sudo pip3 install --upgrade numpy
直接安裝Opencv(11版本的樹莓派是可以直接安裝的,不有那么多的麻煩,比之前幾個版本快多了!)
$ sudo pip3 install opencv-python
三、攝像頭
打開攝像頭,輸入
$ sudo raspi-config
選擇Interfacing Option,選擇第一個Camera,選擇enable,然后重啟,
新建一個demo.py檔案,輸入以下代碼(檔案名任意,但是檔案格式必須是.py)
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while(1):
# get a frame
ret, frame = cap.read()
# show a frame
cv2.imshow("capture", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
#退出并拍照
cv2.imwrite("takephoto2.jpg", frame)
print("take Photo Ok")
break
cap.release()
cv2.destroyAllWindows()
然后在該檔案位置打開終端,輸入
$ sudo python3 demo.py
不出問題就可以打開攝像頭,
以上就是我對于如何在樹莓派上用opencv打開攝像頭的記錄,
更新于2021年12月18日
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/385433.html
標籤:其他
