Как конвертировать скриншот в видеокадр?
Я хочу иметь возможность сделать снимок экрана opencv и применить к нему отслеживание изображений. Но я получаю эту ошибку:
AttributeError: 'numpy.ndarray' object has no attribute 'read'
Я использую win32api, чтобы сделать скриншот, а затем преобразовать его в массив с помощью opencv.
Учебники, на которые я смотрел, касались использования веб-камеры, и, очевидно, кадр, который вы могли бы прочитать с него с помощью ___. Read(), отличается от снимка экрана opencv.
Я думал об использовании OBS или другого потокового сервиса для отправки видео на python, и тогда все должно работать, но я ничего не нашел по этому поводу.
Я попытался преобразовать снимок экрана в видео, затем выполнил функцию read(), но ничего не работает.
Основной файл питона (в цикле while)
if __name__ == '__main__':
screen = g.grab_screen(region = (0, 0, 640, 480))
scr = screen.copy()
screen = cv2.cvtColor(screen, cv2.COLOR_BGR2GRAY)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
vid = cv2.VideoWriter('output.avi', fourcc, 6, (640,480))
vid.write(screen)
frame = screen.read()
# Update tracker
ok, bbox = tracker.update(frame)
grab_screen () происходит из пользовательского файла Python, который использует win32api для создания снимка экрана, а затем возвращает изображение, которое вы можете затем выполнить cv2.cvtcolour().