2017-01-19 2 views
2

すべての入力画像に入力画像と同じサイズのマスクを乗算したい。テンソルフローではどうしたらいいですか?テンソルフローで入力画像にマスクをかけるには?

マイ画像読取機能は、これまでのところ、次のようになります

img_contents = tf.read_file(input_queue[0]) 
label_contents = tf.read_file(input_queue[1]) 
img = tf.image.decode_png(img_contents, channels=3) 
label = tf.image.decode_png(label_contents, channels=1) 

# Now I want to do something like this? 
mask = tf.constant(1.0, dtype=tf.float32, shape=img.shape) 
img_masked = tf.multiply(img,mask) 

があることは可能ですか? imgがすでにテンソルオブジェクトであるかどうかわからないので、ここでその関数を使用できます。私はテンソルフローに新しいです...

+1

あなたは単に 'マスク= tf.constant(1.0、DTYPE = tf.float32、形状= img.get_shapeを行うことができます()) ' ' img_masked = img * mask' – keveman

答えて

0

ここは私にとってうまくいくコードです。私はコードを実行するためにjupyterノートブックを使用しています。

%matplotlib inline 
import tensorflow as tf 
from matplotlib.image import imread 
import matplotlib.pyplot as plt 

# Loading test image from the local filesystem 
x = tf.Variable(imread("test_img.jpg"),dtype='float32') 
x_mask = tf.Variable(imread("test_mask.jpg"),dtype='float32') 
img_mult = tf.multiply(x,x_mask) 

plt.imshow(imread("test_img.jpg")) 
plt.show() 
plt.imshow(imread("test_mask.jpg")) 
plt.show() 

sess = tf.Session() 
sess.run(tf.global_variables_initializer()) 
res = sess.run(img_mult) 

plt.imshow(res) 
plt.show() 

はまた、ここでTFで画像操作をカバーする優れたYouTubeのチュートリアルです:https://www.youtube.com/watch?v=bvHgESVuS6Q&t=447s

関連する問題