import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
我正在用python3.4.1编写一个程序来分析某种类型的验证码。 这是我有问题的地方。在
^{pr2}$现在当我为路径'p'调用f()时,它会给出一个特定的结果(这是错误的)。当我单独调用f()中的每个指令时,它会给出另一个结果(这是正确的):
i = Image.open('p')
ia = np.array(i)
ib = combinator(ia)
capreader(ib)
这太奇怪了!因为我认为在逻辑上他们应该给出同样的结果。 然后我试着看看在f()内部,如果数组b不在f()中,它是否是相同的:
def x(path):
i = Image.open(path)
a = np.array(i)
b = combinator(a)
print(np.array_equal(b,ib)
结果是假的。 然后我测试了这个:
def y(path):
i = Image.open(path)
a = np.array(i)
b = combinator(a)
plt.imshow(b)
plt.show()
capreader(b)
这次(在我关闭pyplot窗口之后)capreader()给出了正确的答案!! 所以我继续测试,这次是这样:
def test(path):
a = Image.open(path)
b = np.array(a)
c = combinator(b)
print(np.array_equal(c,ib)) #False
plt.imshow(c)
plt.show()
print(np.array_equal(c,ib)) #True
capreader(c)
我不明白发生了什么事,也不知道该怎么解决。很明显,在这两个比较中,plt函数的不同给出了相反的结果(False,True)。我在网上看到表演()是一个阻塞函数。我不知道那是什么意思,但我把它放在这里,以防有助于破案。在
目前没有回答
相关问题 更多 >
编程相关推荐