ITの隊長のブログ

ITの隊長のブログです。PythonとRを使って仕事しています。最近は機械学習をさわりはじめたお(^ω^ = ^ω^)

【Python】Tensorflowでresizeした画像をmatplotlibで表示したい

スポンサードリンク

>>> import matplotlib
>>> import matplotlib.pyplot as plt
>>> import tensorflow as tf
>>> tf.__version__
'1.1.0'
>>> matplotlib.__version__
'2.0.0'

Tensorflowの画像前処理関数って結構豊富っぽくて使いたいって練習しようとしてた。

tf.image.resize_images  |  TensorFlow

単純にresizeしたいと思って↑の関数を使う。

# image -> opencvとかで読み込んだ画像
>>> tf_image = tf.image.resize_images(image, [100, 100])
>>> session = tf.Session()
>>> with session.as_default():
...     output = tf_image.eval()
...
>>> plt.imshow(output)
>>> plt.show()

そしたら、反転?みたいな画像がでてきて困惑。

なーぜー?

stackoverflow.com

matplotlibでtensorを表示するためには、tf.float32でcastしたあとに255.0で割ってあげればおk

>>> image = tf.cast(image, tf.float32) / 255.0
>>> tf_image = tf.image.resize_images(tf_image, [100, 100])
>>> session = tf.Session()
>>> with session.as_default():
...     output = tf_image.eval()
...
>>> plt.imshow(output)
>>> plt.show()

これで閲覧できた。

そもそもmatplotlibじゃなくて、tensorboardでみればいいのでは?

・・・・。(試してないからわからんけど)