#misc# 如何优雅地刷新图片

关于GAN的训练过程输出展示
最近做GAN的事情,到了训练阶段,需要给炉子开个孔,定期看看里面发生了什么。但example里的程序实在是粗狂了(真不知大牛们写这段时发生了什么)。。。

def visual(title, X):
    assert len(X.shape) == 4
    X = X.transpose((0, 2, 3, 1))
    X = np.clip((X+1.0)*(255.0/2.0), 0, 255).astype(np.uint8)
    n = np.ceil(np.sqrt(X.shape[0]))
    buff = np.zeros((n*X.shape[1], n*X.shape[2], X.shape[3]), dtype=np.uint8)
    for i, img in enumerate(X):
        fill_buf(buff, i, img, X.shape[1:3])
    buff = cv2.cvtColor(buff, cv2.COLOR_BGR2RGB)
    cv2.imshow(title, buff)
    cv2.waitKey(1)

每次调用之后,或没反应或是一会儿就成未响应表情了,之前试过了一些方法(主要是试着改waitKey的参数)都没进展。
今天下午觉得还是要处理这个问题。看了会儿CVmanual果断打消了从此入手的想法,决定试试pyplot,问题主要是每次调用plt.show()之后就陷入阻塞,
于是看看有没有相应的接口,结果被发现了:),于是很快就有demo了:

import numpy as np
import matplotlib.pyplot as plt
import cv2

for i in xrange(100000):
	img = np.random.randint(0,256,(300,400,3))
	plt.close()
	plt.close()
	plt.figure()
	plt.title('gout')
	plt.imshow(img)

	plt.figure()
	plt.title('ggdt')
	plt.imshow(img)

	plt.show(block=False)
	cv2.waitKey(1000)      # for test, optional
原文地址:https://www.cnblogs.com/chenyliang/p/6797324.html