显示GIF并等待按键

loading...


0

我正在尝试自动化图像序列的标签化 . 我需要相对于某个数字对它们进行排序,这可以由操作人员轻松找到 .

我的想法是为每个序列显示一个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.

loading...

1回答

  • 1

    我不认为你想在这里使用动画,因为这会给用户一个固定的,有限的时间来决定按一个键 . 而是使用按键来触发更改到下一个图像 .

    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()
    
评论

暂时没有评论!