Leo*_*one 3 python numpy computer-vision scikit-image
我正在尝试为字母的图像创建像位图一样的格式,但是我没有期望的结果。我开始使用图像已经过了几天。我试图读取图像,为其创建一个numpy数组,然后将内容保存在文件中。我写了下面的代码:
import numpy as np
from skimage import io
from skimage.transform import resize
image = io.imread(image_path, as_grey=True)
image = resize(image, (28, 28), mode='nearest')
array = np.array(image)
np.savetxt("file.txt", array, fmt="%d")
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下链接中的图像:
我试图创建一个0和1的数组。其中0代表白色像素,而1代表黑色像素。然后,当我将结果保存到文件中时,我可以看到字母格式。
谁能指导我如何获得此结果?
谢谢。
看看这个:
from PIL import Image
import numpy as np
img = Image.open('road.jpg')
ary = np.array(img)
# Split the three channels
r,g,b = np.split(ary,3,axis=2)
r=r.reshape(-1)
g=r.reshape(-1)
b=r.reshape(-1)
# Standard RGB to grayscale
bitmap = list(map(lambda x: 0.299*x[0]+0.587*x[1]+0.114*x[2],
zip(r,g,b)))
bitmap = np.array(bitmap).reshape([ary.shape[0], ary.shape[1]])
bitmap = np.dot((bitmap > 128).astype(float),255)
im = Image.fromarray(bitmap.astype(np.uint8))
im.save('road.bmp')
Run Code Online (Sandbox Code Playgroud)
该程序获取一个rgb图像并将其转换为numpy数组。然后将其分成3个向量,每个通道一个。我使用颜色矢量来创建灰色矢量。此后,它将对元素进行128填充,如果小于,则写入0(黑色),否则为255。下一步是重塑形状并保存。
你可以用枕头
from PIL import Image
img = Image.open("haha.jpg")
img = img.tobitmap()
Run Code Online (Sandbox Code Playgroud)