TensorFlow初心者ここでは、私が失敗するa simple tutorialのトレーニングです。 画像をグレースケールに変換することがポイントです。tf.reduce_mean&tf.concatを使用したグレースケール変換
私たちのデータは、基本的にHxWx3
(画像の高さ、幅、3つの値r、g、bの色)です。
したがって、各アレイセルを[r, g, b]
から[gray, gray, gray]
に変換するのと同等である可能性があります。gray = mean(r, g, b)
は正しいですか?
したがって、私は平均関数のために文書をチェックし、reduce_meanを見つけました。私はそれを色軸、すなわちaxis = 2で使用し、軸2を使用して結果を再度連結して平均値を複製し、最終的にグレー値(=平均)を赤、緑、青の3倍にします。このコードを実行することができますが、結果はOKではありません
import tensorflow as tf
import matplotlib.image as mpimg
filename = "MarshOrchid.jpg"
raw_image_data = mpimg.imread(filename)
image = tf.placeholder("uint8", [None, None, 3])
# Reduce axis 2 by mean (= color)
# i.e. image = [[[r,g,b], ...]]
# out = [[[ grayvalue ], ... ]] where grayvalue = mean(r, g, b)
out = tf.reduce_mean(image, 2, keep_dims=True)
# Associate r,g,b to the same mean value = concat mean on axis 2.
# out = [[[ grayvalu, grayvalue, grayvalue], ...]]
out = tf.concat(2, [out, out, out])
with tf.Session() as session:
result = session.run(out, feed_dict={image: raw_image_data})
print(result.shape)
plt.imshow(result)
plt.show()
(You can get original image here)
:
は、以下のコードを参照してください。
私は私の変数をチェックし、それは平均がOKではないことが判明何が起こったのか、(88、147、137)の平均、下のスクリーンショットに示されている疑問に思う!= 38
私が間違ったことを理解できません...
ありがとう! (理由オーバーフローの)平均値を計算する前に pltrdy
:)は、以下の良好なグレースケール変換を提供します!良い仕事&thx。 まだ、色が反転しているようです(画像の暗い部分はグレースケールで白に近いです)。奇妙な、私は調査する、もう一つの質問thats – pltrdy
解決済み、編集 – pltrdy