人脸编程代码可以使用多种库来实现,包括OpenCV和face_recognition。下面我将分别提供使用这两个库的示例代码。
使用OpenCV实现人脸检测和绘制人脸轮廓
```python
import cv2
加载人脸检测器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
加载图像
img = cv2.imread('image.jpg')
将图像转为灰度
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)
绘制人脸轮廓
face_roi = gray[y:y+h, x:x+w]
edges = cv2.Canny(face_roi, 100, 150)
cv2.imshow('Face Edges', edges)
显示绘制结果
cv2.imshow('Detected Faces', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
使用face_recognition库检测人脸
```python
import face_recognition
加载图片
image = face_recognition.load_image_file("my_photo.jpg")
查找人脸
face_locations = face_recognition.face_locations(image)
打印人脸位置
print(f"Found {len(face_locations)} face(s) in this photograph.")
```
使用face_recognition库提取人脸特征
```python
import face_recognition
加载图片
image = face_recognition.load_image_file("你的图片.jpg")
编码人脸特征
face_encodings = face_recognition.face_encodings(image)
通常一张图片里只有一张人脸,所以我们取第一个元素
face_encoding = face_encodings
```
使用OpenCV从摄像头捕捉图像并检测人脸
```python
import cv2
打开摄像头,0是默认摄像头,你有好几个摄像头就换成1、2...
camera = cv2.VideoCapture(0)
while True:
读图像,ret是读取成功了没,frame就是图像数据
ret, frame = camera.read()
显示图像
cv2.imshow('摄像头画面', frame)
按q键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
释放摄像头资源
camera.release()
cv2.destroyAllWindows()
```
使用OpenCV和face_recognition库实现人脸识别
```python
import cv2
import face_recognition
import numpy as np
加载图片
imgHwt = face_recognition.load_image_file("3.jpg")
imgHwt = cv2.cvtColor(imgHwt, cv2.COLOR_BGR2RGB)
imgTest = face_recognition.load_image_file("f3.jpg")
imgTest = cv2.cvtColor(imgTest, cv2.COLOR_BGR2RGB)
查找人脸位置
faceLoc = face_recognition.face_locations(imgHwt)
编码人脸特征
encodeHwt = face_recognition.face_encodings(imgHwt)
在另一张图片上绘制人脸框
faceLocTest = face_recognition.face_locations(imgTest)
cv2.rectangle(imgTest, (faceLocTest, faceLocTest), (faceLocTest, faceLocTest), (255, 0, 255), 2)
显示结果
cv2.imshow('Face Recognition', imgTest)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
以上代码分别展示了如何使用OpenCV和face_recognition库进行人脸检测、特征提取和人脸识别。你可以根据自己的需求选择合适的库和代码进行实现。