Как конвертировать скриншот в видеокадр? - PullRequest
0 голосов
/ 23 мая 2019

Я хочу иметь возможность сделать снимок экрана opencv и применить к нему отслеживание изображения.Но я получаю эту ошибку:

AttributeError: 'numpy.ndarray' object has no attribute 'read'

Я использую win32api, чтобы сделать скриншот, а затем преобразовать его в массив с помощью opencv.

Учебники, на которые я смотрел, были связаны с использованием веб-камеры, и, очевидно, кадр, который вы могли бы прочитать с него с помощью ___. Read (), отличается от снимка экрана opencv.

Я думал об использовании OBS или другого потокового сервиса для отправки видео на python, и тогда все должно работать, но я ничего не нашел на этом.

Я попытался преобразовать скриншот в видео, затемвыполняет функцию read (), но ничего не работает.

Основной файл Python (в цикле 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 () вкл.

...