我试图用imshow在while循环中显示一个图像(一个N*pnumpy数组),但似乎不起作用。在
当我使用plt.imshow公司(image,cmap='gray')”没有缩进,效果非常好。在
但是,当我试图从while循环中使用它时
continue=True
while continue:
plt.imshow(image,cmap='gray')
continue=input()
或者
^{pr2}$pyplot窗口只是冻结和python崩溃(if的问题相同)。在
我不明白为什么会这样,有人知道吗?提前感谢:)
编辑:我试着在我的程序中这样使用它
import matplotlib.pyplot as plt
import numpy as np
import PIL.Image as im
image=np.array(im.open("Blabla.jpg").convert('L')).astype(np.float32)
plt.imshow(image,cmap='gray') #This works -> ONLY when there is not a while after
keepGoin = True #But this doesn't
while keepGoin:
plt.imshow(image,cmap='gray')
keepGoin=input()
编辑2:
我犯了一个错误:imshow似乎在使用while//if时暂停,即使while循环正好在imshow之后。当while循环结束时,最终会显示一个图像。也许使用这种循环只是暂停了这个过程?在
所以我尝试使用一个二次函数来显示while之外的图像,但是它也不起作用,结果是一样的:pyplot窗口在while循环期间冻结,并且图像在循环结束后立即显示。在
编辑3:
因此,在多次尝试之后,我很确定问题不是暂时调用imshow,而是循环会暂停pyplot的执行,即使它是在循环之前调用的(如果我调用imshow然后使用循环,pyplot窗口会冻结直到循环结束)
根据我做的一些新研究,暂停我可以帮我,但我试这个时有个错误。在
以下是一些可能有助于调试的观察结果。下面的代码和语句只适用于
Python 2.x
。在使用下面的代码,您必须在启动程序的控制台上输入单词},这样它才不会在第一次显示之后崩溃,因为
True
或{input()
需要某种输入,如果您不给它任何东西,就会抛出EOF
。在如果将其更改为
^{pr2}$raw_input
,则它不会与EOF
崩溃,但仍将终止,除非您给它一些输入。但是,将循环更改为独立于输入的循环为我暂停了它,直到我在终端上按下Enter
。在相关问题 更多 >
编程相关推荐