在tf.where()给定的索引处设置张量值

时间:2018-07-17 13:05:47

标签: python tensorflow image-processing noise

我试图将噪声添加到容纳图像灰度像素值的张量中。我想将像素值的随机数设置为255。

我在考虑以下方面的事情

random = tf.random_normal(tf.shape(input))
mask = tf.where(tf.greater(random, 1))

然后尝试找出如何为input的每个索引将mask的像素值设置为255。

1 个答案:

答案 0 :(得分:0)

tf.where()也可用于此目的,在遮罩元素为True的地方分配噪声值,否则为原始的input值:

import tensorflow as tf

input = tf.zeros((4, 4))
noise_value = 255.
random = tf.random_normal(tf.shape(input))
mask = tf.greater(random, 1.)
input_noisy = tf.where(mask, tf.ones_like(input) * noise_value, input)

with tf.Session() as sess:
    print(sess.run(input_noisy))
    # [[   0.  255.    0.    0.]
    #  [   0.    0.    0.    0.]
    #  [   0.    0.    0.  255.]
    #  [   0.  255.  255.  255.]]