<MyRusakov.ru />

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

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

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

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

Помимо самого курса Вас ждёт ещё 8 бесплатных ценных Бонусов: «Chaos Destruction», «Разработка 2D-игры», «Динамическая смена дня и ночи», «Создание динамической погоды», «Создание искусственного интеллекта для NPC», «Создание игры под мобильные устройства», «Создание прототипа RPG с открытым миром» и и весь курс «Создание игр на Unreal Engine 4» (актуальный и в 5-й версии), включающий в себя ещё десятки часов видеоуроков.

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

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

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

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

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

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

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

Какая тема Вас интересует больше?

Объединяем изображения в видеофайл с Python и OpenCV

Объединяем изображения в видеофайл с Python и OpenCV

Здравствуйте! В сегодняшней статье мы рассмотрим, как создать видео из набора изображений с помощью Python. Эта задача может быть полезна для создания слайд-шоу, анимаций или просто для объединения изображений в видеоролик. Мы используем библиотеки os, cv2 и PIL для выполнения этой задачи. Давайте разберем, как это сделать.

Шаг 1: Импорт необходимых библиотек

Для начала нам понадобятся библиотеки os для работы с файловой системой, cv2 (OpenCV) для работы с изображениями и видео, а также PIL (Pillow) для обработки изображений. Мы импортируем их следующим образом:

import os
import cv2
from PIL import Image

Шаг 2: Вычисление средних размеров изображений

Чтобы создать видео, нам нужно, чтобы все изображения имели одинаковый размер. Для этого мы сначала вычислим средние ширину и высоту всех изображений в указанной папке:

def calculate_mean_dimensions(image_folder):
    total_width = 0
    total_height = 0
    num_images = 0

    for file in os.listdir(image_folder):
        try:
            with Image.open(os.path.join(image_folder, file)) as img:
                width, height = img.size
                total_width += width
                total_height += height
                num_images += 1
        except Exception as e:
            print(f"Ошибка при открытии изображения {file}: {e}")

    if num_images == 0:
        raise ValueError("В каталоге не найдено допустимых изображений.")

    mean_width = total_width // num_images
    mean_height = total_height // num_images

    return mean_width, mean_height

Шаг 3: Изменение размеров изображений

Теперь, когда у нас есть средние размеры, мы можем изменить размер каждого изображения до этих значений:

def resize_images(image_folder, mean_width, mean_height):
    for file in os.listdir(image_folder):
        if file.lower().endswith((".jpg", ".jpeg", ".png")):
            try:
                with Image.open(os.path.join(image_folder, file)) as img:
                    img_resized = img.resize((mean_width, mean_height), Image.ANTIALIAS)
                    img_resized.save(os.path.join(image_folder, file), 'JPEG', quality=95)
                    print(f"{file} изменен до размеров {mean_width}x{mean_height}")
            except Exception as e:
                print(f"Ошибка при обработке изображения {file}: {e}")

Шаг 4: Создание видео из изображений

Теперь мы готовы создать видео из измененных изображений:

def generate_video(image_folder, video_name='generated_video.avi', fps=1):
    images = [img for img in os.listdir(image_folder) if img.lower().endswith((".jpg", ".jpeg", ".png"))]

    if not images:
        raise ValueError("В каталоге не найдено изображений для создания видео.")

    first_image_path = os.path.join(image_folder, images[0])
    frame = cv2.imread(first_image_path)
    height, width, layers = frame.shape

    video = cv2.VideoWriter(video_name, cv2.VideoWriter_fourcc(*'DIVX'), fps, (width, height))

    for image in images:
        img_path = os.path.join(image_folder, image)
        video.write(cv2.imread(img_path))

    video.release()
    print(f"Видео {video_name} успешно создано.")

Шаг 5: Объединение всех шагов

Осталось объединить все шаги в одну основную функцию:

def main():
    image_folder = "C:\\Python\\MyFolder"
    os.chdir(image_folder)

    mean_width, mean_height = calculate_mean_dimensions(image_folder)
    resize_images(image_folder, mean_width, mean_height)
    generate_video(image_folder)

if __name__ == "__main__":
    main()

Заключение

Таким образом, мы рассмотрели, как создать видео из набора изображений с помощью Python. Сначала мы вычислили средние размеры изображений, затем изменили их размер и, наконец, собрали их в видеоролик. Этот процесс можно использовать для создания различных анимаций и слайд-шоу. Надеюсь, эта статья была полезной и вдохновляющей для вас!

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

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

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

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

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

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

  1. Кнопка:

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

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

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

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

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

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