Как изменить разрешение видео в OpenCV на Python
В этой статье мы опишем, как вы можете захватить каждый кадр из видео, а также изменить их размер в соответствии с вашими потребностями. Что мы точно сделаем, так это возьмем видео в качестве входных данных от пользователя и захватим его кадр за кадром. Кроме того, мы запускаем видео в цикле и сохраняем кадры изображения с определенными именами после изменения размера этих кадров.
Поэтапная реализация:
Шаг 1: Импорт библиотек
Здесь мы импортируем библиотеку cv2, cv2 — это пакет OpenCV, который помогает нам вызывать функции imread(), startWindowThread(), namedWindow() и imshow() соответственно.
import cv2
Шаг 2: Определите объект захвата видео
На этом шаге мы будем использовать функцию VideoCapture(), чтобы получить объект захвата видео для камеры. Здесь вы можете использовать либо свою камеру, либо напрямую загрузить видео из вашей системы.
vidcap = cv2.VideoCapture(“#Define the video path”)
Шаг 3: Захват видео кадр за кадром
Теперь мы захватим длину видео для запуска цикла. Кроме того, видео автоматически закрывается после захвата всех кадров.
success,image = vidcap.read()
Шаг 4: Объявите переменную
Затем объявите переменную и подсчитайте со значением 0. Эта переменная будет увеличиваться при выполнении цикла.
count = 0
Шаг 5: Создание цикла для запуска видео
Кроме того, мы создаем цикл while для запуска видео и сохранения всех кадров из вашего видео в вашей локальной системе.
while success:
Шаг 5.1: Кадровый захват видео
Далее мы будем читать видео кадр за кадром для изменения размера кадров и сохранения их на локальный компьютер.
success,image = vidcap.read()
Шаг 5.2: Изменение размера рамок изображения
На этом этапе мы использовали функцию resize() с определенными размерами, для которых необходимо установить рамки изображения.
resize = cv2.resize(image, (#x-axis dimensions, #y-axis dimensions))
Шаг 5.3: Сохранение кадров с определенными именами
Позже мы сохраняем кадры изображения, размер которых мы изменили на последнем шаге. Также мы даем фреймам определенные имена с расширениями.
cv2.imwrite(“%04d.jpg” % count, resize)
Шаг 5.4. Автоматическое закрытие видео после окончания
Кроме того, функция waitKey() используется для автоматического закрытия видео после окончания видео.
if cv2.waitKey(10) == 27: break
Шаг 5.5 Увеличение переменной на 1
Наконец, мы увеличиваем значение объявленной переменной, считая на 1.
count += 1
Пример:
В этом примере мы использовали видео (ссылку), из которого мы будем извлекать определенные кадры, изменять размер этих кадров и сохранять их с определенными именами на локальном компьютере.
Python3
# Python program to resize frame"s # from video with aspect ratio # Import the libraries import cv2 # Define a video capture object vidcap = cv2.VideoCapture( "gfg_video.mp4" ) # Capture video frame by frame success, image = vidcap.read() # Declare the variable with value 0 count = 0 # Creating a loop for running the video # and saving all the frames while success: # Capture video frame by frame success, image = vidcap.read() # Resize the image frames resize = cv2.resize(image, ( 700 , 500 )) # Saving the frames with certain names cv2.imwrite( "%04d.jpg" % count, resize) # Closing the video by Escape button if cv2.waitKey( 10 ) = = 27 : break # Incrementing the variable value by 1 count + = 1 |
Выход: