我使用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或其他库)准确更新?