2017-07-28 13 views
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() 
+1

(経験はあまりありませんが、いくつかのランダムな推測:)あなたはそれがexif-metadataを解釈していると思いますか?私は、そのイメージをそのままデコードしているが、回転を行っていないと思うだろう。つまり、画像をきれいに表示しているすべてのアプリがそれを回転させたことを意味します。 (この種のデータを解釈することは、MLアプリケーションでは私には意味をなさないが、新たな潜在的な問題の層を追加する。これが、デコードがそれらのローテーションを気にしないと思う理由である)。 – sascha

+1

@サシャ私はちょうどそれを言うためにここに来た。 Windowsのファイルブラウザと写真ビューアが自動的に回転を適用し、幅/高さの値を反転させて一致させました。 – Scutterman

答えて

1

私はこれをすべて後ろに持っていました。 Windowsエクスプローラとデフォルトのフォトビューアの両方が自動的に回転を適用していましたが、新しい回転に合わせて幅/高さの値を反転していました。 PythonやTensorflowとは関係ありません。

関連する問題