что я могу сделать, чтобы улучшить качество моего видео в opencv - PullRequest
0 голосов
/ 01 марта 2020

Я создаю python программу для записи экрана моего рабочего стола.

Но вывод этого кода в очень низком качестве и размытым.

Может ли кто-нибудь помочь мне в захвате (захвате экрана) в высоком качестве.

Как экран записи как делают OBS studio и Camtasia.

что я могу сделать, чтобы улучшить свое качество, изменить расширение, код c, et c. пожалуйста, укажите.

import cv2
import numpy as np
import datetime
from PIL import Image, ImageTk, ImageGrab

date = datetime.datetime.now()
filename='rec_%s-%s-%s-%s%s%s.mp4' % (date.year, date.month, date.day,
                                                     date.hour, date.minute, date.second)

fourcc = cv2.VideoWriter_fourcc(*'X264')
frame_rate = 16
SCREEN_SIZE = (960,540)
out = cv2.VideoWriter(filename, fourcc,framerate, SCREEN_SIZE)

while True:
        img = ImageGrab.grab()
        frame = np.array(img)

        frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
        out.write(frame)
        cv2.imshow('screenshot', frame)

        if cv2.waitKey(1) == ord("q"):
            break
cv2.destroyAllWindows()
out.release()

1 Ответ

0 голосов
/ 02 марта 2020

frame_rate = 16

SCREEN_SIZE = (960 540)

Оба значения слишком низкие, вы, вероятно, хотите, чтобы значение frame_rate было равно 30, а размер экрана был равен быть 1920x1080p.

Также просто есть дополнительная информация: .mp4 - плохой формат для записи экрана, я знаю, что OBS рекомендовал использовать .flv, потому что он не повреждает весь файл, если запись заканчивается внезапно, в отличие. mp4.

...