怎样在树莓派上设置OpenCV进行人脸检测

电子说

1.3w人已加入

描述

什么是OpenCV?

OpenCV是一个开源的计算机视觉和机器学习软件库。 OpenCV是在BSD许可下发布的,可以免费用于学术和商业用途。它具有C ++,Python和Java接口,支持Windows,Linux,Mac OS,iOS和Android。

OpenCV专为提高计算效率而设计,专注于实时应用。

如何在Raspberry Pi上安装OpenCV

要安装OpenCV,我们需要安装Python。由于Raspberry Pis预装了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

完成这些步骤后,应安装OpenCV。让我们测试一下我们的工作吧!

测试OpenCV

要检查OpenCV是否安装正确,请尝试键入以下内容导入OpenCV:

Python3

然后:

import cv2

如果没有显示错误,则安装成功!

要知道您拥有哪个版本的OpenCV,请输入以下命令:/p》

cv2.__version__

此消息告诉您在Raspberry Pi上安装的OpenCV版本。

推荐的可选库

还有其他要安装的库,当你进行对象检测和其他项目时会派上用场,所以我很高兴修改你也安装这些。

NumPy

第一个库是NumPy - 一个使Python中的数组操作易于执行的库。键入以下命令安装NumPy:

pip3 install python-numpy

Matplotlib

第二个库是Matplotlib。 Matplotlib是一个Python绘图库,可以跨平台生成各种硬拷贝格式和交互式环境的出版物质量数据。键入以下命令安装Matplotlib:

pip3 install python-matplotlib

现在我们已经完成了在Raspberry Pi上安装OpenCV和有用的附带库。让我们在Raspberry Pi上使用OpenCV进行对象检测和机器学习。

Face使用OpenCV检测图片

让我们从编写将要检测的代码开始面对它收到的图像。对于面部检测,您需要一个级联文件。将此文件保存在工作目录中“haarcascade_frontalface_default.xml”。

输入要检测面部的图像的路径进入下面的代码并运行代码。

# 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()

运行代码后,它将在面部周围绘制矩形,如下图所示。

运行代码后,所有检测到的面部周围都会出现矩形。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分