私はpyevolveを使って遺伝的アルゴリズムでプログラムを作りました。世代ごとに PIL イメージを変更します。コードは次のとおりです。
def update_image():
global image
# Update image
...
ga = GSimpleGA.GSimpleGA( genome )
...
ga.stepCallback.set( update_image )
ga.evolve( freq_stats = 1 )
うまく機能しますが、画像がどのように変化するかわかりません。ファイルに保存すると、最終的な画像しか表示されません。
私はTkinterを使ってみて、このようにプログラムを修正しました
root = Tk.Tk()
label = Tk.Label( root )
label.pack()
def update_image():
global image
# Update image
tkimage = ImageTk.PhotoImage( image )
label.configure( image = tkimage )
label.image = tkimage
...
ga = GSimpleGA.GSimpleGA( genome )
...
ga.stepCallback.set( update_image )
root.after( 1000, lambda : ga.evolve( freq_stats = 1 ) )
root.mainloop()
ただし、遺伝的アルゴリズムのみを実行し、画像を更新しません。
画像を表示し、必要なときに正確に更新する (Tkinter または別のライブラリを使用して) 他の (より簡単な) 方法はありますか?