def print_greyscale(pixels, width=28, height=28):
def get_single_greyscale(pixel):
val = 232 + round(pixel * 23)
return '\x1b[48;5;{}m \x1b[0m'.format(int(val))
for l in range(height):
line_pixels = pixels[l * width:(l+1) * width]
print(''.join(get_single_greyscale(p) for p in line_pixels))
import numpy as np
import csv
import matplotlib.pyplot as plt
with open('mnist_test_10.csv', 'r') as csv_file:
for data in csv.reader(csv_file):
# The first column is the label
label = data[0]
# The rest of columns are pixels
pixels = data[1:]
# Make those columns into a array of 8-bits pixels
# This array will be of 1D with length 784
# The pixel intensity values are integers from 0 to 255
pixels = np.array(pixels, dtype='uint8')
# Reshape the array into 28 x 28 array (2-dimensional array)
pixels = pixels.reshape((28, 28))
# Plot
plt.title('Label is {label}'.format(label=label))
plt.imshow(pixels, cmap='gray')
plt.show()
break # This stops the loop, I just want to see one
开放简历
可以从上面获取pixelsnumpy数组,该数组是dtype='uint8'(无符号8位整数)和形状28 x 28,并用cv2.imshow()绘制
title = 'Label is {label}'.format(label=label)
cv2.imshow(title, pixels)
cv2.waitKey(0)
cv2.destroyAllWindows()
对于所有像我这样想要一个快速而肮脏的解决方案的人来说,只需在控制台中,在没有花哨的库的情况下,大致了解一个给定的输入是关于什么的:
(期望输入的形状像
[784]
,浮点值从0到1。如果两者都不是,则可以轻松转换(例如pixels = pixels.reshape((784,))
或pixels \= 255
)输出有点失真,但你明白了。
导入必要的包
将mnist train数据集(csv格式)读取为pandas数据帧
将pandas数据帧转换为numpy矩阵
第一列包含标签,因此将其存储在单独的数组中
从数据矩阵中删除第一列
第一行表示第一个图像,它是28X28图像(存储为784像素)
enter image description here
假设您有一个具有此格式的CSV文件,即MNIST数据集可用的格式
下面是如何使用Matplotlib和OpenCV在Python中可视化它的方法
Matplotlib/Pyplot
开放简历
可以从上面获取
pixels
numpy数组,该数组是dtype='uint8'
(无符号8位整数)和形状28 x 28,并用cv2.imshow()
绘制相关问题 更多 >
编程相关推荐