2016-06-16 5 views
2

テンソルフローでライブラリを使用せずにRGBイメージをグレースケールに手動で変換したかったのです。だから私は次のように書いた...RGBをグレースケールに手動で変換するテンソルフロー

import tensorflow as tf 
import matplotlib.image as mpimg 
import matplotlib.pyplot as plt 

# First, load the image again 
filename = "MarshOrchid.jpg" 
raw_image_data = mpimg.imread(filename) 

image = tf.placeholder("float", [None, None, 3]) 
slice = tf.slice(image,[0,0,0],[-1,-1,1]) 

with tf.Session() as session: 
    result = session.run(slice, feed_dict={image: raw_image_data}) 
    plt.imshow(result) 
    plt.show() 

私は、変換のための画像の最初のチャンネルを抽出しました。 しかし、私は何をすべき

TypeError: Invalid dimensions for image data 

を言っ関数imread使用中にこのエラーが発生? plt.imshowのdocから

+0

次のような最後のディメンションを削除するだけです。どのラインがエラーをスローしますか? –

+0

plt.imshow(結果) –

+0

Shubham、解決策を見つけましたか? imshow – Fiona

答えて

2

(X):

X:array_like、形状(N、M)又は(N、M、3)又は(N、M、4)

ここには、[None、None、1]という形の入力があります。

result = np.squeeze(result, 2) 
+0

グレースケールに変換する私の方法は(2チャンネルを削除する)正しいか、3チャンネルの平均をとるべきですか –

+0

平均!それは良い方法です –

関連する問題