0

我是 GAN 这个领域的新手,我尝试了一些教程,但是,其中大部分使用了 Cifar 或 mnist 数据集。所以大多数都是以这样的格式(xxxx、28、28)构建的。

最近,我想试试我们的另一张照片。例如,

from scipy import misc
data = misc.imread("1.PNG") #this can be any images from JPEG or any
print(data.shape)

我的输出:

(842, 1116, 4) # Seriously I dont understand what does this mean. 842 means 842 files? I thought I have only 1 image loaded.

我的预期输出:

由于我是新手,我真的很想提出问题,应该是 (1, 28, 28) 还是其他?这样我就可以适应 GAN,因为它在教程中使用了 784

通常,在 mnist 的数据集中,我们有 (60000, 28, 28),这意味着 60k 张图片,每张图片的形状为 28x28。我上面的输出呢?(842, 1116, 4) 不是指 842 张 1116 x 4 的图片吧?我只加载了一张图片。有人可以帮助我如何转换它并理解它。谢谢你

4

2 回答 2

1

imread 使用 PIL 或 Pillow 读取图像,它以以下格式返回图像:高 x 宽 x 通道,其中通道通常是 3 个通道(正常彩色图像的红色、绿色、蓝色 [RGB])或有时是 4 个通道(红色、绿色、蓝色、Alpha/透明度 [RGBA])。

因此,您读取842x1116具有 4 个颜色通道的大小像素图像。你说你使用形状 (xxxx, 28, 28) 的训练数据,所以你使用灰度而不是彩色图像。第一步是将彩色图像转换为灰度。Pillow(作为 PIL 的替代品)是一个很好的图像操作库。或者,您可以只使用一个频道

gray_data = data[:,:,0]

要将其用作训练数据,您现在可以将其调整为 28x28 或从中提取 28x28 大小的小块。

small_data = gray_data[:28,:28]

这将导致 (28,28)。大多数学习算法需要的不是一张,而是几张图像,主要是格式(#images、height、width)。所以你需要重塑它:

final_data = small_data.reshape(1,28,28)

那应该这样做。但是,适当的 RGB(A) 到灰度转换和调整大小将是更好的解决方案。查看枕头文档以获取详细信息。

于 2019-03-13T03:32:12.577 回答
0

图像 x、y (842x1116) 的大小(以像素为单位)和颜色通道数 - 4(R、G、B、Alpha)

于 2019-03-13T02:41:27.253 回答