以下代码成功将图像文件转换为numpy数组,然后再转换回图像。
with open(BASE_DIR + '/web/images/testImage.png') as file:
img = Image.open(file)
pixels = numpy.asarray(img)
img = Image.fromarray(pixels)
img.show()
大。布埃诺。真棒。
图片为(28, 28)
。但是,当我将图像转换为numpy数组时,尺寸为(28, 28, 4)
。
要调整像素大小(28,28),我在下面添加以下行:
with open(BASE_DIR + '/web/images/testImage.png') as file:
img = Image.open(file)
pixels = numpy.asarray(img)
pixels = numpy.resize(pixels, (28,28)) # this line here!!!
img = Image.fromarray(pixels)
img.show()
但是,当我显示图像时,它会全部扭曲并搞砸。
我的目标是将2D多声道图像(28,28,4)的大小调整为平坦(28,28)图像阵列,并将像素数据写入csv。
IA如何将(28,28)图像读取为表示真实(28,28)数组的numpy像素数据,或者B)调整numpy数组的大小,以便在写入a时图像不会失真CSV?
这个要点包含我一直在玩的当前代码和数据:
https://gist.github.com/daino3/b671b2d171b3948692887e4c484caf47
当我将图像转换为黑白时使用:
with open(BASE_DIR + '/web/images/testImage_1502036630.png') as file:
img = Image.open(file).convert('L') # convert to B&W
img.show()
我丢失了所有像素数据值,图像完全是黑色。
答案 0 :(得分:1)
我的猜测是您的图片处于RGBa
模式。尝试:
img = Image.open(file).convert('L')