人脸编程代码怎么写

时间:2025-03-01 14:41:21 明星趣事

人脸编程代码可以使用多种库来实现,包括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库进行人脸检测、特征提取和人脸识别。你可以根据自己的需求选择合适的库和代码进行实现。