首页 / 行业
怎样在树莓派上设置OpenCV进行人脸检测
2019-08-05 11:03:00
什么是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.webp’)
# 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.webp’, image)
# Destroy all windows
cv2.destroyAllWindows()
# If pressed key is ESC
elif k == 27:
# Destroy all windows
cv2.destroyAllWindows()
运行代码后,它将在面部周围绘制矩形,如下图所示。
运行代码后,所有检测到的面部周围都会出现矩形。
最新内容
手机 |
相关内容
什么是带阻三极管,带阻三极管的基本
什么是带阻三极管,带阻三极管的基本结构、工作原理、电阻比率、常用型号、应用、检测、操作规程及发展历程,三极管,检测,工作原理,什么是高压接触器,高压接触器的组成
什么是高压接触器,高压接触器的组成、特点、原理、分类、常见故障及预防措施,高压,分类,闭合,用于,操作,损坏,AD694ARZ高压接触器是什么是射流继电器,射流继电器的基本
什么是射流继电器,射流继电器的基本结构、技术参数、工作原理、负载分类、如何选用、操作规程及发展历程,继电器,工作原理,分类,负什么是互感器,互感器的组成、特点、
什么是互感器,互感器的组成、特点、原理、分类、操作规程及发展趋势,发展趋势,分类,输入,计量,用于,信号,AD574AKD互感器是一种用于位移传感器结构类型及工作原理与应
位移传感器结构类型及工作原理与应用,工作原理,类型,结构,位移传感器,常见,效应,FDV302P位移传感器是一种用于测量物体位移或位置的加特兰毫米波雷达SoC芯片赋能室内
加特兰毫米波雷达SoC芯片赋能室内安防新应用,毫米波雷达,芯片,用于,稳定性,目标,感知,室内安防是一个重要的领域,随着技术的进步和人单相滤波器:从基础到应用的全面解读
单相滤波器:从基础到应用的全面解读,滤波器,能和,噪声,选择,信号,工作原理,TVP5146PFP单相滤波器是一种用于去除电源信号中的杂波和聊聊芯片中的负压产生机理及其应用
聊聊芯片中的负压产生机理及其应用,芯片,细胞,用于,测量,生物,结构,芯片中的负压是指在芯片内部产生的负压环境。在某些应用中,负压