私はいくつかのコンピュータビジョンアルゴリズムに取り組んでいます。私は各ステップでどのようにnumpy配列が変化するかを示したいと思います。matplotlibのimshow()ウィンドウをインタラクティブに更新するには?
私のコードの最後に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。 dynamic image exampleのようなアニメーション機能でこれを行うことは可能ですか?ループの中で関数を呼びたいので、アニメーション関数でどのようにこれを実現するのか分かりません。
をそれは 'の前に)(あなたが使用してバックエンドいるに依存するが、少なくとも一つの'ショーを() 'を呼び出すしてみてくださいまたは'引いてもよいですあなたのループを開始 - この[回答](http://stackoverflow.com/questions/2130913/no-plot-window-in-matplotlib)を参照してください。 – Bonlenfum