<MyRusakov.ru />

Создание игр на Unreal Engine 4

Создание игр на Unreal Engine 4

Данный курс научит Вас созданию игр на Unreal Engine 4. Курс состоит из 12 модулей, в которых Вы с нуля освоите этот движок и сможете создавать самые разные игры.

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

Помимо самого курса Вас ждёт ещё 5 бесплатных ценных Бонусов: «Динамическая смена дня и ночи», «Создание динамической погоды», «Создание искусственного интеллекта для NPC», «Создание игры под мобильные устройства» и «Создание прототипа RPG с открытым миром».

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

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

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

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

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

Каким движком Вы предпочитаете пользоваться?

Python OpenCV: Цветовая сегментация

Python OpenCV: Цветовая сегментация

Продолжаем изучать Python библиотеку OpenCV. Сегодня поговорим о цветовой сегментации.

Цветовая сегментация фото или видео дает возможность выделить объект с конкретным оттенком, а уже затем обработать его, например распознать движется он или нет. В Python данную возможность можно реализовать библиотекой OpenCV. Для начала необходимо иметь базовые знания о цветовом представлении. По умолчанию в OpenCV цвет изображения представлен в формате BGR: Blue, Green, Red. Нам потребуется перевести наш формат в представление hsv, методом cv2.cvtColor(frame, cv2.COLOR_BGR2HSV). Полученный массив будет содержать представление изображения в виде оттенка цвета, его насыщенности и яркости или hsv. Цветовые параметры будут установлены в массиве lower_border = np.array([111, 23, 56]).


import cv2
import  numpy as np

def nothing(x): #  Пустая функция 
      pass

# захват видеопотока с вебкамеры
cap = cv2.VideoCapture(0)


# создаем окно с ползунками

cv2.namedWindow("Tracking") 
cv2.createTrackbar("l_h", "Tracking", 0, 255, nothing) # создание элемента  Trackbar
cv2.createTrackbar("l_s", "Tracking", 0, 255, nothing)
cv2.createTrackbar("l_v", "Tracking", 0, 255, nothing)
cv2.createTrackbar("u_h", "Tracking", 255, 255, nothing)
cv2.createTrackbar("u_s", "Tracking", 255, 255, nothing)
cv2.createTrackbar("u_v", "Tracking", 255, 255, nothing)


while True: 

    # image = cv2.imread("D:/apple-1112047_1280.jpg") # метод считывает переданную ему строку 
  
    _, frame = cap.read() 


    # перевод изображения формата BGR в  HSV, формат hsv: hue, saturation, value
    
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) 
    
    
    # продолжение ниже...
    

Наряду с форматом BGR есть цветовое пространство hsv. Параметр, hue (h), соответствует цветовому компоненту: красному, синему и так далее, saturation (s) - соответствует насыщенности цвета: красный, темно-красный, светло-красный, и так далее. Значение value (v) передает соответственно яркость выбранного цветового компонента или пикселя.

# ...продолжение предыдущего кода


    # получение значения элемента Trackbar

    LH = cv2.getTrackbarPos("l_h", "Tracking") 
    LS = cv2.getTrackbarPos("l_s", "Tracking")
    LV = cv2.getTrackbarPos("l_v", "Tracking")

    UH = cv2.getTrackbarPos("u_h", "Tracking")
    US = cv2.getTrackbarPos("u_s", "Tracking")
    UV = cv2.getTrackbarPos("u_v", "Tracking")

    # первое значение в массиве - hue - цвет, второе - saturation - насыщенность, третье value - яркость
    lower_border = np.array([LH, LS, LV]) 

    upper_border = np.array([UH, US, UV]) # верхняя граница цветового массива  hsv

    mask = cv2.inRange(hsv, lower_red, upper_red) # маска для нахождения объекта указанного цветового массива на изображении
    res = cv2.bitwise_and(frame, frame, mask=mask)  # окончательный вариант


    cv2.imshow("color", frame)  # оригинальное фото
    cv2.imshow("mask", mask) # фото после фильтрации по цвету
    cv2.imshow("hsv", hsv) # фото в формате  hsv
    cv2.imshow("res", res) 

    key = cv2.waitKey(1)
    if key == 27:
    break


cap.release() # запуск видео цикла
cv2.destroyAllWindows() # метод закрытия  всех окон при остановке программы

Манипулируя значениями элементов Trackbar, можно устанавливать маску для нахождения объекта с интересующим нас цветом.

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

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

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

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

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

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

  1. Кнопка:

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

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

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

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

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

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