Python 将PNG或JPEG图像转换为GAN算法接受的格式
对于GAN,我对这个领域还不熟悉,我尝试了一些教程,但是,大多数教程都使用了Cifar或mnist数据集。所以大部分都是这样的内置格式(xxxx,28,28) 最近,我想试试我们的另一张照片。比如说,Python 将PNG或JPEG图像转换为GAN算法接受的格式,python,numpy,machine-learning,generative-adversarial-network,Python,Numpy,Machine Learning,Generative Adversarial Network,对于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 don
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的形状。我上面的输出呢?(8421116,4)并不意味着842张1116 x 4形状的图片,不是吗?我只加载了一个图像。有人可以帮助我如何转换它,也了解它。谢谢图像的大小x,y(842x1116)以像素和颜色通道数-4(R,G,B,Alpha)imread使用PIL或枕头读取图像,它以以下格式返回图像: 高度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)。大多数学习算法需要的不是一张图像,而是多张图像,主要是图像的格式(#图像、高度、宽度)。因此,您需要对其进行重塑:
final_data = small_data.reshape(1,28,28)
应该这样做。但是,适当的RGB(A)到灰度转换和大小调整将是更好的解决方案。查看枕头文档了解详细信息。我明白了,所以如果我想重塑枕头,我该怎么做?我能把它做成(1784)的形状吗?我对GAN算法和所需的格式一无所知。如果(N,x,y),其中N是图片数量,x,y是尺寸,那么您可以使用scipy.misc.imresize将1.PNG调整为28x28。非常感谢!这真的帮了我很大的忙,你列出的例子和建议也帮了我很大的忙!我会检查更多,并尝试了解它现在。再次感谢你