0
ここでの例は、Tensorflowの使い方を習得しようとしているときに書き下ろしたアップスケーリングプログラムです。もし私がオリエンテーションexifメタデータを持っている画像(私のテスト画像はRotate 270 CWを持っています)を送ると、出力画像はその向きを "正しい"ように回転します。これはどこにも書かれていないようです。jpegファイルをデコードすると、ソースjpegオリエンテーションexifメタデータがある場合に出力が回転します
decode_jpeg/encode_jpeg関数にフラグや値を渡すか、あらかじめメタデータを取り除くことで、これを防ぐ方法がありますか?
"Use tensorflow to decode then encode an image at a hard-coded location and save the result to a second hard-coded location."
import tensorflow as tf
def main():
"Use tensorflow to decode then encode an image at a hard-coded location and save the result to a second hard-coded location."
sess = tf.Session()
image_decoded = tf.image.decode_jpeg(tf.read_file('D:\\TensorFlow\\Upscaling\\C890FAA477.jpg'), channels=3)
fname = tf.constant('D:\\TensorFlow\\Upscaling\\C890FAA477_DEC_ENC.jpg')
enc = tf.image.encode_jpeg(tf.cast(image_decoded, tf.uint8))
fwrite = tf.write_file(fname, enc)
sess.run(fwrite)
return
main()
(経験はあまりありませんが、いくつかのランダムな推測:)あなたはそれがexif-metadataを解釈していると思いますか?私は、そのイメージをそのままデコードしているが、回転を行っていないと思うだろう。つまり、画像をきれいに表示しているすべてのアプリがそれを回転させたことを意味します。 (この種のデータを解釈することは、MLアプリケーションでは私には意味をなさないが、新たな潜在的な問題の層を追加する。これが、デコードがそれらのローテーションを気にしないと思う理由である)。 – sascha
@サシャ私はちょうどそれを言うためにここに来た。 Windowsのファイルブラウザと写真ビューアが自動的に回転を適用し、幅/高さの値を反転させて一致させました。 – Scutterman