用python从电脑摄像头获取一张照片,然后用opencv识别照片中的所有人脸并将人脸显示出来,并将每一张人脸保存为一个单独的文件。
时间: 2023-02-07 14:20:56 浏览: 66
首先,你需要安装 Python 和 OpenCV。
然后,你可以使用 OpenCV 中的 cv2 模块打开摄像头,使用 cv2.imread() 函数读取照片,使用 cv2.cvtColor() 函数将图像转换为灰度图像,然后使用 cv2.CascadeClassifier 类检测人脸。下面是一个例子:
```
import cv2
# 打开摄像头
camera = cv2.VideoCapture(0)
# 从摄像头中获取一张图片
ret, frame = camera.read()
# 关闭摄像头
camera.release()
# 将图片转换为灰度图像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 加载人脸检测器
face_detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 检测人脸
faces = face_detector.detectMultiScale(gray, 1.3, 5)
# 循环遍历每一张人脸
for (x,y,w,h) in faces:
# 在图片中画出人脸
cv2.rectangle(frame, (x,y), (x+w, y+h), (255,0,0), 2)
# 显示图片
cv2.imshow('frame', frame)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
要将每一张人脸保存为单独的文件,你可以在循环中使用 cv2.imwrite() 函数将每一张人脸保存到磁盘上。
```
import cv2
# 打开摄像头
camera = cv2.VideoCapture(0)
# 从摄像头中获取一张图片
ret, frame = camera.read()
# 关闭摄像头
camera.release()
# 将图片转换为灰度图像
gray = cv2.cvtColor(