Как вывести изображение с помощью matplotlib и спать после этого - Python - PullRequest
1 голос
/ 10 марта 2020

Я хочу иметь возможность вызвать фигуру, содержащую два изображения, с помощью plt.show (block = False). Я хочу неблокировать, потому что мне нужно продолжить выполнение, пока загружаются изображения (рисунок). Если я немедленно вызову time.sleep (x), где x означает любое количество времени, фигура зависает и изображения не отображаются. Однако, если я сразу же вызову input («x»), а x - любая строка, изображения загружаются правильно, и программа ожидает ввода данных пользователем. Ожидание неопределенного времени при вводе пользователем не работает для того, что мне нужно, но time.sleep не делает то, что я хочу (зависает рисунок). Я хочу получить поведение вызова input (), фактически не ожидая ввода пользователя, с функциональностью time.sleep ().

По сути, я хочу отобразить пару изображений и разрешить пользователь должен нажать клавишу ввода, чтобы продолжить сразу, ИЛИ подождать некоторое количество секунд и продолжить автоматически (это внутри al oop, которое вызовет еще пару изображений и повторится). Я получаю пользовательский ввод во время time.sleep () с msvcrt.getch () (я на windows), который просто использует нажатие клавиши во время сна, который находится в буфере (я думаю ...)

Я пытался вызвать plt.show () в потоке, но matplotlib (tk backend?) Не является поточно-ориентированным, поэтому я получаю ту же проблему с зависаниями (изображения не отображаются). Кроме того, я прочитал, что cv2.imshow () также не является потокобезопасным.

Я открыт для любого способа сделать это ... возможно, matplotlib и msvcrt не способ go, но они делают то, что мне нужно отдельно, я просто не могу заставить их работать вместе.

В основном, что я пытаюсь сделать:

loop
   plt.show()
   time.sleep()
   if key_hit:
      if key is Enter
         continue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...