我想用python写一个能识别小红小明的代码
时间: 2024-02-04 10:01:52 浏览: 65
如果你想用Python写一个能识别小红小明的代码,你需要进行人脸识别。Python中有很多开源的人脸识别库,比如OpenCV和face_recognition等。你可以使用这些库来实现人脸识别。
以下是一个使用face_recognition库进行人脸识别的简单示例代码:
```python
import face_recognition
# 加载小红的照片
image_of_xiaohong = face_recognition.load_image_file("xiaohong.jpg")
# 获取小红的面部编码
xiaohong_face_encoding = face_recognition.face_encodings(image_of_xiaohong)[0]
# 加载小明的照片
image_of_xiaoming = face_recognition.load_image_file("xiaoming.jpg")
# 获取小明的面部编码
xiaoming_face_encoding = face_recognition.face_encodings(image_of_xiaoming)[0]
# 创建已知人脸编码列表和名称列表
known_face_encodings = [
xiaohong_face_encoding,
xiaoming_face_encoding
]
known_face_names = [
"xiaohong",
"xiaoming"
]
# 加载要识别的照片
unknown_image = face_recognition.load_image_file("unknown.jpg")
# 获取要识别的照片中所有面部的编码
face_encodings = face_recognition.face_encodings(unknown_image)
# 遍历每个面部编码
for face_encoding in face_encodings:
# 尝试匹配已知面部编码
matches = face_recognition.compare_faces(known_face_encodings, face_encoding)
name = "Unknown"
# 找到匹配的面部编码
if True in matches:
# 获取第一个匹配的面部编码的索引
first_match_index = matches.index(True)
# 获取已知面部编码列表中对应的名称
name = known_face_names[first_match_index]
# 在照片中标注出人物
face_locations = face_recognition.face_locations(unknown_image)
top, right, bottom, left = face_locations[0]
cv2.rectangle(unknown_image, (left, top), (right, bottom), (0, 0, 255), 2)
cv2.putText(unknown_image, name, (left, top - 6), font, 0.5, (0, 0, 255), 2)
# 显示识别结果
cv2.imshow("Image", unknown_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例代码中,我们首先使用face_recognition库加载了小红和小明的照片,并获取了它们的面部编码。然后,我们创建了已知人脸编码列表和名称列表。接下来,我们使用face_recognition库加载了要识别的照片,并获取了照片中所有面部的编码。最后,我们遍历每个面部编码,尝试匹配已知面部编码,并在照片中标注出人物。
这是一个简单的示例代码,你可以根据自己的需要进行修改和扩展。
阅读全文