我的代码将数字数据转换为灰度,然后将其转换为 28*28 大小。但是从这段代码中,如果我尝试从显示图像的代码中删除重塑线,我无法在输出中获取图像并出现错误图像没有给出正确的形状。
from PIL import Image
user_test = filename
col = Image.open(user_test)
gray = col.convert('L')
bw = gray.point(lambda x: 0 if x<100 else 255, '1')
bw.save("bw_image.jpg")
bw
img_array = cv2.imread("bw_image.jpg", cv2.IMREAD_GRAYSCALE)
img_array = cv2.bitwise_not(img_array)
print(img_array.size)
plt.imshow(img_array, cmap = plt.cm.binary)
plt.show()
img_size = 28
new_array = cv2.resize(img_array, (img_size,img_size))
plt.imshow(new_array, cmap = plt.cm.binary)
plt.show()
user_test = user_test.reshape(-1,img_size,img_size)
user_test = tf.keras.utils.normalize(new_array, axis = 1)
predicted = model.predict([[user_test]])
a = predicted[0][0]
for i in range(0,10):
b = predicted[0][i]
print("Probability Distribution for",i,b)
print("The Predicted Value is",np.argmax(predicted[0]))
错误获取:
AttributeError Traceback (most recent call last)
<ipython-input-34-04ae8dbf024e> in <module>()
15 plt.imshow(new_array, cmap = plt.cm.binary)
16 plt.show()
---> 17 user_test = user_test.reshape(-1,img_size,img_size)
18 user_test = tf.keras.utils.normalize(new_array, axis = 1)
19 predicted = model.predict([[user_test]])
AttributeError: 'str' object has no attribute 'reshape'