如何将数字样本显示为二进制图像?

时间:2017-10-17 22:34:29

标签: python matlab

我是机器学习的新手,作为我项目的一部分,我必须进行手写数字分类。

我的“ digit_0.txt ”是一个文本文件,0' and 1'代表数字0的原始前景和背景。

它看起来像这样:

0011000

0100100

0011000

如何将此文本文件显示为带有黑色背景的二进制图像,白色前景代表我在Python中的数字?

我在matlab中使用imwrite命令完成了这个。

谢谢!

3 个答案:

答案 0 :(得分:0)

我不确定这是否是作业,但如果不是:

有一个包含TONS手写数字的存储库,您可以使用此数据集来训练您的分类器。

http://yann.lecun.com/exdb/mnist/

答案 1 :(得分:0)

import cv2
import numpy as np

img = None
with open('digit_0.txt', 'r') as digit_stream:
    for row_data in digit_stream:
        row_data = row_data.replace('\n', '')
        row_img = np.zeros((1, len(row_data)), dtype=np.uint8)
        for idx, bit in enumerate(row_data):
            if bit == '1':
                row_img[0, idx] = 255
            else:
                row_img[0, idx] = 0
        if img is None:
            img = row_img
        else:
            img = np.vstack((img, row_img))
cv2.namedWindow('img', cv2.WINDOW_NORMAL)
cv2.imshow('img', img)
cv2.waitKey()

试试这个:)

答案 2 :(得分:0)

使用imshow库中的matplotlib功能

Check this link for more info