<MyRusakov.ru />

Программирование на C++ с Нуля до Гуру

Программирование на C++ с Нуля до Гуру

Данный курс научит Вас программировать на языке C++, который, несмотря на свой почтенный возраст, необычайно сильно востребован. Курс состоит из 6 разделов, посмотрев которые и выполнив все упражнения, Вы с нуля освоите этот язык и сможете создавать самые разные проекты любой сложности на C++.

Для закрепления материала из уроков к ним идёт множество упражнений.

Дополнительно к курсу идёт вспомогательная система, которая не даст Вам забросить начатое на полпути.

Также вместе с курсов Вы получаете Бонус "Программирование на C++ в Unreal Engine", в котором Вы научитесь создавать игры на C++ с использованием этого движка.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Определение лица на изображении с помощью Python

Определение лица на изображении с помощью Python

Современные технологии компьютерного зрения и обработки изображений предоставляют возможность определения отдельных экземпляров конкретных классов, таких как лица, дома, машины, животные и так далее, на цифровых изображениях и видеороликах. В данной статье мы рассмотрим простой Python скрипт, определяющий лица людей на фото и выделяющий их отдельной рамкой. Скрипт реализован средствами библиотеки Opencv, и прежде всего набором данных из папки cv2, под названием haarcascade_fontalface_default.xml. Данный файл содержит в себе зашифрованные данные в виде функций на основе массива пикселей изображения, и использует метод называемый Каскадный классификатор на основе признаков Хаара. Вышеуказанный способ детектирования предпочтительнее для новичков. Также следует помнить что мы можем только найти и выделить то что нас интересует, но не классифицировать. Перейдем к коду:

# устанавливаем пакеты 
pip3 install opencv-python numpy 


import cv2
import  numpy as  np

# существенно здесь положение лица на фотографии, чем более фронтально оно расположено тем лучше распознование 

#  в некоторых случаях выходит ошибка в пути
image = cv2.imread("ууу/xxx/test.jpg") 


# тогда используем второй метод

def cv_imread(file_path):
    cv_img = cv2.imdecode(np.fromfile(file_path, dtype=np.uint8), -1) # 
    return cv_img


file_path = 'ууу/xxx/test.jpg'


# функция imread() загружает изображение из указанного файла  и возвращает N-мерный массив
image = cv_imread(file_path) 

# Функция детектор ожидает получить черно белое изображение, и поэтому отформатируем image

image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 

# следующим этапом необходимо загрузить файл haarcascade_fontalface_default.xml либо если он установлен найти и прописать полный путь к нему или переместить в папку с нашим скриптом.  


face_cascade = cv2.CascadeClassifier("полный_путь/haarcascade_fontalface_default.xml")

# функция detectMultiScale() принимает изображения, определяет искомые объекты и возвращает список прямоугольных областей  

faces = face_cascad.detectMultiScale(image_gray) 


print(str(len(faces)) + "  faces detected in the image.")

# обведем каждое обнаруженное лицо синим прямоугольником
for x, y, width, height in faces: 
    cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0), thickness=2)

# сохраним полученное изображение
cv2.imwrite("detected.jpg", image)


# вывод на экран
cv2.imshow("detected.jpg", image)

cv2.waitKey(0)

cv2.destroyAllWindows()


Помимо лиц в .xml файл входящих в библиотеку Opencv, поддерживаются множество объектов, если же их недостаточно, можно создать собственный классификатор.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.