Как обновить окно imshow () matplotlib в интерактивном режиме?

я работаю над алгоритмом компьютерного зрения, и яМне бы хотелось показать, как меняется массив с каждым шагом.

Что работает сейчас, так это то, что если у меня есть простойimshow( array ) в конце моего кода, окно отображает и показывает окончательное изображение.

Однако, что яЯ хотел бы обновить и отобразить окно imshow, когда изображение меняется на каждой итерации.

Так, например, яЯ хотел бы сделать:

import numpy as np
import matplotlib.pyplot as plt
import time

array = np.zeros( (100, 100), np.uint8 )

for i in xrange( 0, 100 ):
    for j in xrange( 0, 50 ):
        array[j, i] = 1

        #_show_updated_window_briefly_
        plt.imshow( array )
        time.sleep(0.1)

Проблема в том, что таким образом окно Matplotlib не 'не активируется, только когда все вычисления завершены.

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

Q1. Каков наилучший способ непрерывного отображения обновлений в массиве numpy (на самом деле изображение в оттенках серого uint8)?

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

Ответы на вопрос(2)

Ваш ответ на вопрос