Как конвертировать скриншот в видеокадр?

Я хочу иметь возможность сделать снимок экрана 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().

0 ответов

Другие вопросы по тегам