Показать GIF и дождаться нажатия клавиши - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь автоматизировать маркировку последовательностей изображений.Мне нужно отсортировать их по определенному числу, которое легко может найти человек-оператор.

Моя идея состоит в том, чтобы показать для каждой последовательности gif (всплывает на экране), чтобы оператор нажал цифровую клавишу, а затем скопировал последовательность в правильное место и вставил другой gif и т. Д.

На данный момент мне удалось показать GIF-файлы и ждать нажатия кнопки, но я не могу получить точную нажатую клавишу ...

Есть идеи, как это сделать?И я хотел бы иметь возможность нажимать клавишу, имея gif спереди, а не в терминале ...

Вот мой код:

    fig = plt.figure()
    for img in sequence:
        im = plt.imshow(img_array,animated=True,cmap='gray')
        ims.append([im])

    ani = animation.ArtistAnimation(fig,ims,interval=50,blit=True,repeat_delay=1000)
    plt.draw()
    plt.pause(1)
    n = raw_input("how many?")
    plt.close(fig) ## shows all the gifs at once, opening multiple windows.

1 Ответ

0 голосов
/ 10 декабря 2018

Я не думаю, что вы хотите использовать анимацию здесь, потому что это даст пользователю только фиксированное, ограниченное время для принятия решения о нажатии клавиши.Вместо этого используйте нажатие клавиши, чтобы вызвать переход к следующему изображению.

import numpy as np
import matplotlib.pyplot as plt

images = [np.random.rand(10,10) for i in range(13)]

fig, ax = plt.subplots()

im = ax.imshow(images[0], vmin=0, vmax=1, cmap='gray')

curr = [0]
def next_image(evt=None):
    n = int(evt.key)
    # do something with current image
    print("You pressed {}".format(n))
    # advance to next image
    if curr[0] < len(images)-1:
        curr[0] += 1
        im.set_array(images[curr[0]])
        fig.canvas.draw_idle()
    else:
        plt.close()

fig.canvas.mpl_connect("key_press_event", next_image)        
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...