我为数字识别器(https://www.kaggle.com/c/digit-recognizer/data)训练了一个模型。输入数据是一个csv文件。文件中的每一行表示一个高28像素宽28像素的图像,总共784像素。模型已经可以使用了,但是我想知道如何为这个输入创建一个测试数据?如果我有一个数字图像,我怎么能把它转换成28乘28像素的数组格式。你知道吗
我尝试下面的代码,但它呈现为黄色的图像背景。png图像有白色背景,所以我不明白为什么它显示黄色。你知道吗
import numpy as np
import cv2
import csv
import matplotlib.pyplot as plt
img = cv2.imread('./test.png', 0) # load grayscale image. Shape (28,28)
flattened = img.flatten() # flatten the image, new shape (784,)
row = flattened.reshape(28,28)
plt.imshow(row)
plt.show()
我为你准备了一个小例子,希望能给你一个如何完成这项任务的想法:
我以这张图片为例:
完整脚本:
现在您拥有了与示例中提供的相同的csv结构。你知道吗
自定义_测试.csv输出(缩短):
编辑: 要使用matplotlib可视化展平图像,必须指定颜色贴图:
相关问题 更多 >
编程相关推荐