我正在使用github https://github.com/eriklindernoren/Keras-GAN/blob/master/gan/gan.py上的代码
The demo code show 25 generated image in one single image file. 但是我想将每个原始大小的图像打印为png文件。我已经尝试过
plt.imshow()
或
cv2.imwrite()
但是,它们没有起作用。没有子图图像,我将无法打印正确的图像。
这是打印图像的一部分:
def sample_images(self, epoch):
r, c = 5, 5
noise = np.random.normal(0, 1, (r * c, self.latent_dim))
gen_imgs = self.generator.predict(noise)
# Rescale images 0 - 1
gen_imgs = 0.5 * gen_imgs + 0.5
fig, axs = plt.subplots(r, c)
cnt = 0
for i in range(r):
for j in range(c):
axs[i,j].imshow(gen_imgs[cnt, :,:,0], cmap='gray')
axs[i,j].axis('off')
cnt += 1
fig.savefig("images/%d.png" % epoch)
plt.close()
非常感谢您。
答案 0 :(得分:0)
您正在使用
创建具有25个子图的图形fig, axs = plt.subplots(5, 5)
将其替换为fig, ax = plt.subplots()
,以创建具有一组轴的图形。如果您希望25张图片中的每张都包含在自己的图形中,则还需要进入循环。另外,您还需要将对savefig
的调用移入循环:
def sample_images(self, epoch):
r, c = 5, 5
noise = np.random.normal(0, 1, (r * c, self.latent_dim))
gen_imgs = self.generator.predict(noise)
# Rescale images 0 - 1
gen_imgs = 0.5 * gen_imgs + 0.5
cnt = 0
for i in range(r):
for j in range(c):
fig, ax = plt.subplots()
ax.imshow(gen_imgs[cnt, :,:,0], cmap='gray')
ax.axis('off')
cnt += 1
fig.savefig("images/%d.png" % epoch)
plt.close()