什么是OpenCV?
OpenCV是一個(gè)開源的計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫。 OpenCV是在BSD許可下發(fā)布的,可以免費(fèi)用于學(xué)術(shù)和商業(yè)用途。它具有C ++,Python和Java接口,支持Windows,Linux,Mac OS,iOS和Android。
OpenCV專為提高計(jì)算效率而設(shè)計(jì),專注于實(shí)時(shí)應(yīng)用。
如何在Raspberry Pi上安裝OpenCV
要安裝OpenCV,我們需要安裝Python。由于Raspberry Pis預(yù)裝了Python,我們可以直接安裝OpenCV。
鍵入以下命令以確保您的Raspberry Pi是最新的,并將Raspberry Pi上安裝的軟件包更新到最新版本。
sudo apt-get update
sudo apt-get upgrade
在終端中鍵入以下命令,以便在Raspberry Pi上安裝OpenCV所需的軟件包。
sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore4
鍵入以下命令以安裝OpenCV 3 for Raspberry Pi上的Python 3, pip3 告訴我們將為Python 3安裝OpenCV。
sudo pip3 install opencv-contrib-python libwebp6
完成這些步驟后,應(yīng)安裝OpenCV。讓我們測(cè)試一下我們的工作吧!
測(cè)試OpenCV
要檢查OpenCV是否安裝正確,請(qǐng)嘗試鍵入以下內(nèi)容導(dǎo)入OpenCV:
然后:
import cv2
如果沒有顯示錯(cuò)誤,則安裝成功!
要知道您擁有哪個(gè)版本的OpenCV,請(qǐng)輸入以下命令:/p》
cv2.__version__
此消息告訴您在Raspberry Pi上安裝的OpenCV版本。
推薦的可選庫
還有其他要安裝的庫,當(dāng)你進(jìn)行對(duì)象檢測(cè)和其他項(xiàng)目時(shí)會(huì)派上用場(chǎng),所以我很高興修改你也安裝這些。
NumPy
第一個(gè)庫是NumPy - 一個(gè)使Python中的數(shù)組操作易于執(zhí)行的庫。鍵入以下命令安裝NumPy:
pip3 install python-numpy
Matplotlib
第二個(gè)庫是Matplotlib。 Matplotlib是一個(gè)Python繪圖庫,可以跨平臺(tái)生成各種硬拷貝格式和交互式環(huán)境的出版物質(zhì)量數(shù)據(jù)。鍵入以下命令安裝Matplotlib:
pip3 install python-matplotlib
現(xiàn)在我們已經(jīng)完成了在Raspberry Pi上安裝OpenCV和有用的附帶庫。讓我們?cè)赗aspberry Pi上使用OpenCV進(jìn)行對(duì)象檢測(cè)和機(jī)器學(xué)習(xí)。
Face使用OpenCV檢測(cè)圖片
讓我們從編寫將要檢測(cè)的代碼開始面對(duì)它收到的圖像。對(duì)于面部檢測(cè),您需要一個(gè)級(jí)聯(lián)文件。將此文件保存在工作目錄中“haarcascade_frontalface_default.xml”。
輸入要檢測(cè)面部的圖像的路徑進(jìn)入下面的代碼并運(yùn)行代碼。
# Import OpenCV library
import cv2
# Load a cascade file for detecting faces
faceCascade = cv2.CascadeClassifier(“haarcascade_frontalface_default.xml”);
# Load image
image = cv2.imread(‘obamafamily.jpg’)
# Convert into grayscale
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Look for faces in the image using the loaded cascade file
faces = faceCascade.detectMultiScale(gray, 1.2, 5)
for (x,y,w,h) in faces:
# Create rectangle around faces
cv2.rectangle(image,(x,y),(x+w,y+h),(255,255,0),2)
# Create the resizeable window
cv2.namedWindow(‘Obama’, cv2.WINDOW_NORMAL)
# Display the image
cv2.imshow(‘Obama’, image)
# Wait until we get a key
k=cv2.waitKey(0)
# If pressed key is ‘s’
if k == ord(‘s’):
# Save the image
cv2.imwrite(‘convertedimage.jpg’, image)
# Destroy all windows
cv2.destroyAllWindows()
# If pressed key is ESC
elif k == 27:
# Destroy all windows
cv2.destroyAllWindows()
運(yùn)行代碼后,它將在面部周圍繪制矩形,如下圖所示。
運(yùn)行代碼后,所有檢測(cè)到的面部周圍都會(huì)出現(xiàn)矩形。
-
人臉檢測(cè)
+關(guān)注
關(guān)注
0文章
80瀏覽量
16512 -
OpenCV
+關(guān)注
關(guān)注
31文章
635瀏覽量
41556 -
樹莓派
+關(guān)注
關(guān)注
117文章
1710瀏覽量
105880
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論