テンソルが与えられたら、この関数を使用して0D文字列を取得し、これを "sample.jpg"として書きたいと思います。tf.image.encode_jpegを使用してTensorFlowで画像を書き出すにはどうすればよいですか?
これはOpenCVまたはPython PILで簡単に実現できますが、可能であればTF内のすべてを保持したいと考えています。
テンソルが与えられたら、この関数を使用して0D文字列を取得し、これを "sample.jpg"として書きたいと思います。tf.image.encode_jpegを使用してTensorFlowで画像を書き出すにはどうすればよいですか?
これはOpenCVまたはPython PILで簡単に実現できますが、可能であればTF内のすべてを保持したいと考えています。
は:
import tensorflow as tf
def write_jpeg(data, filepath):
g = tf.Graph()
with g.as_default():
data_t = tf.placeholder(tf.uint8)
op = tf.image.encode_jpeg(data_t, format='rgb', quality=100)
init = tf.initialize_all_variables()
with tf.Session(graph=g) as sess:
sess.run(init)
data_np = sess.run(op, feed_dict={ data_t: data })
with open(filepath, 'w') as fd:
fd.write(data_np)
import numpy as np
R = np.zeros([128 * 128])
G = np.ones([128 * 128]) * 100
B = np.ones([128 * 128]) * 200
data = np.array(list(zip(R, G, B)), dtype=np.uint8).reshape(128, 128, 3)
assert data.shape == (128, 128, 3)
write_jpeg(data, "./test.jpeg")
numpyの一部を向上させることができるが、それはデモンストレーションの目的のためだっただけ
また、画像を消去してopencvまたはPILを使用して保存することもできます。
import cv2 # opencv
from scipy.misc import imsave
... network generates an image ...
out = network(input)
img = tf.image.encode_jpeg(out)
img_to_save = img.eval(feed_dict)
# cv2.imwrite("myimage", img_to_save)
imsave("myimage.jpeg", img_to_save)
画像にはfeed_dictの評価が必要な場合とない場合があります。機能は次のようになりtensorflowで
最後のデータ形式は文字列ではないバイトのようです。 fd: fd.write(data_np)「 」に「open(filepath、 'wb')をfd: fd.write(data_np)」として「open(filepath、 'w' Python 3.5およびTensorflow 1.1.0 –