commit 87f22255268edc5f009cbac570b95932590edb93 Author: Евгений Иванцов Date: Mon Jun 24 18:37:03 2024 +0000 Загрузить файлы в «/» diff --git a/face_search.py b/face_search.py new file mode 100644 index 0000000..de8f8fc --- /dev/null +++ b/face_search.py @@ -0,0 +1,29 @@ +import cv2 +import numpy as np + +# Загрузка модели HOG + SVM +face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') + +# Функция для поиска лиц на изображении +def find_faces(image): + gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) + faces = face_cascade.detectMultiScale(gray, 1.1, 4) + + # Рисование прямоугольников вокруг обнаруженных лиц + + for (x, y, w, h) in faces: + cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2) + + return image + +# Загрузка изображения + +image = cv2.imread('image.jpg') + +# Поиск лиц на изображении +detected_image = find_faces(image) + +# Отображение результата +cv2.imshow('Detected Faces', detected_image) +cv2.waitKey(0) +cv2.destroyAllWindows() \ No newline at end of file diff --git a/face_search_cam.py b/face_search_cam.py new file mode 100644 index 0000000..07b90b9 --- /dev/null +++ b/face_search_cam.py @@ -0,0 +1,36 @@ +import cv2 + +# Загрузка модели HOG + SVM +face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') + +# Функция для поиска лиц на изображении +def find_faces(image): + gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) + faces = face_cascade.detectMultiScale(gray, 1.1, 4) + + # Рисование прямоугольников вокруг обнаруженных лиц + for (x, y, w, h) in faces: + cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2) + + return image + +# Захват видео с веб-камеры +cap = cv2.VideoCapture(0) + +while(True): + # Чтение кадра с камеры + ret, frame = cap.read() + + # Поиск лиц на кадре + detected_frame = find_faces(frame) + + # Отображение результата + cv2.imshow('Detected Faces', detected_frame) + + # Прерывание цикла при нажатии клавиши 'q' + if cv2.waitKey(1) & 0xFF == ord('q'): + break + +# Освобождение ресурсов +cap.release() +cv2.destroyAllWindows() \ No newline at end of file diff --git a/haarcascade.py b/haarcascade.py new file mode 100644 index 0000000..3de9aa2 --- /dev/null +++ b/haarcascade.py @@ -0,0 +1,23 @@ +import cv2 + +# Загрузка изображения +image = cv2.imread('image.jpg') +print(image) + +# Преобразование изображения в оттенки серого +gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) + +# Загрузка каскадного классификатора для поиска лиц +face_cascade = cv2.CascadeClassifier(r'haarcascade_frontalface_default.xml') +print(face_cascade) +# Обнаружение лиц на изображении +faces = face_cascade.detectMultiScale(gray, 1.1, 4) + +# Рисование прямоугольников вокруг найденных лиц +for (x, y, w, h) in faces: + cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2) + +# Отображение результата +cv2.imshow('Результат', image) +cv2.waitKey(0) +cv2.destroyAllWindows() \ No newline at end of file diff --git a/haarcascade_frontalface_default.xml.zip b/haarcascade_frontalface_default.xml.zip new file mode 100644 index 0000000..31f6205 Binary files /dev/null and b/haarcascade_frontalface_default.xml.zip differ