OpenCV/r.py

55 lines
1.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import cv2
import face_recognition
# To capture video from webcam.
cap = cv2.VideoCapture(0)
# To use a video file as input
# cap = cv2.VideoCapture('filename.mp4')
while True:
# Read the frame
_, img = cap.read()
# Находим координаты лиц с использованием face_recognition
faces_locations = face_recognition.face_locations(img)
# Draw the rectangle around each face
for (top, right, bottom, left) in faces_locations:
cv2.rectangle(img, (left, top), (right, bottom), (255, 0, 0), 2)
# Если обнаружено два лица, сравниваем их
if len(faces_locations) == 2:
# Преобразуем кортежи в списки
face_encodings = [face_recognition.face_encodings(img, [face_location])[0] for face_location in faces_locations]
# Сравниваем лица
results = face_recognition.compare_faces(face_encodings, face_encodings[1])
# Выводим результат
if all(results):
print("Yes, лица похожи!")
# Сохраняем изображения только если лица совпадают
for i, (top, right, bottom, left) in enumerate(faces_locations):
cv2.imwrite(f'images/face_{i + 1}.png', img[top:bottom, left:right])
# Прерываем цикл, чтобы не продолжать поиск
break
else:
print("No, лица различны.")
# Display
cv2.imshow('img', img)
# Stop if escape key is pressed
k = cv2.waitKey(30) & 0xff
if k == 27:
break
# Release the VideoCapture object
cap.release()
# Close all OpenCV windows
cv2.destroyAllWindows()
# osr с опен cv