【发布时间】:2020-01-02 14:07:35
【问题描述】:
我对 Python 没有经验,并且第一次使用 Tkinter 制作一个 UI,显示我的数字分类程序与 mnist 数据集的结果。我有一个关于在 Tkinter 中显示来自 numpy 数组而不是我 PC 上的文件路径的图像的问题。我为此尝试的当前代码是:
img = PhotoImage(test_images[0])
window.create_image(20,20, image=img)
这是不成功的,但我不知道如何处理它。下面是从数组中绘制的图像的图片,我想在 UI 中显示,图像下方只是显示我如何加载和绘制图像的代码,以防万一。抱歉,如果这是一个我缺少的简单修复,我对此很陌生。干杯
https://i.gyazo.com/8962f16b4562c0c15c4ff79108656087.png
# Load the data set
train_images = mnist.train_images() #training data
train_labels = mnist.train_labels() #training labels
test_images = mnist.test_images() # training training images
test_labels = mnist.test_labels()# training data labels
# normalise the pixel values of the images to make the network easier to train
train_images = (train_images/255) - 0.5
test_images = (test_images/255) - 0.5
# Flatten the images in to a 784 dimensional vector to pass into the neural network
train_images = train_images.reshape((-1, 784))
test_images = test_images.reshape((-1, 784))
# Print shape of images
print(train_images.shape) # 60,000 rows and 784 columns
print(test_images.shape)
for i in range(0,15):
first_image = test_images[i]
first_image = np.array(first_image, dtype='float')
pixels = first_image.reshape((28,28))
plt.imshow(pixels)
plt.show()
错误信息:
Traceback (most recent call last):
File "C:/Users/Ben/Desktop/Python Projects/newdigitclassifier/classifier.py", line 122, in <module>
img = PhotoImage(test_images[0])
File "C:\Users\Ben\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 3545, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "C:\Users\Ben\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 3491, in __init__
if not name:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
【问题讨论】:
-
尝试使用
Pillow模块中的Image.fromarray(...)函数将数组转换为图像。
标签: python arrays tensorflow machine-learning tkinter