Как обновить окно 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. Можно ли сделать это с помощью функции анимации, как впример динамического изображения? Я'Я хотел бы вызвать функцию внутри цикла, поэтому я нене знаю, как этого добиться с помощью функции анимации.