ubuntu上用opencv怎么调用摄像头来完成人脸识别
时间: 2023-12-21 10:05:23 浏览: 108
毕业设计C++基于OpenCV库实现的实时人脸识别系统源码,含摄像头调用和图形处理demo
要在Ubuntu上使用OpenCV进行人脸识别,您需要使用摄像头捕获图像,然后使用OpenCV库中的人脸检测器来检测图像中的人脸,最后使用分类器来识别人脸。下面是一个基本的示例代码,可以帮助您开始:
```python
import cv2
# 加载人脸检测器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
# 从摄像头捕获一帧图像
ret, img = cap.read()
# 将捕获的图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 使用人脸检测器检测图像中的人脸
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 在图像上绘制矩形框,标记检测到的人脸
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
# 显示图像
cv2.imshow('img',img)
# 按下q键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头,关闭窗口
cap.release()
cv2.destroyAllWindows()
```
上述代码使用OpenCV中的Haar级联分类器来检测人脸,并在检测到人脸时在图像中绘制矩形框。要运行此代码,您需要在本地计算机上安装OpenCV库和Haar级联分类器XML文件。在Ubuntu上,您可以使用以下命令安装OpenCV:
```
sudo apt-get install python3-opencv
```
Haar级联分类器XML文件可以在OpenCV的GitHub库中找到,您可以从以下链接下载并使用:
https://github.com/opencv/opencv/tree/master/data/haarcascades
注意,这个示例只是一个基本的人脸识别程序,您可以通过使用更复杂的分类器和算法来改进它。
阅读全文