也许我在这里缺少一些微妙之处,但您似乎可以使用tf.expand_dims()
和tf.nn.conv2d()
将Sobel滤波器应用于图像,如下所示:
sobel_x = tf.constant([[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]], tf.float32)
sobel_x_filter = tf.reshape(sobel_x, [3, 3, 1, 1])
sobel_y_filter = tf.transpose(sobel_x_filter, [1, 0, 2, 3])
image = tf.placeholder(tf.float32, shape=[None, None])
image_resized = tf.expand_dims(tf.expand_dims(image, 0), 3)
filtered_x = tf.nn.conv2d(image_resized, sobel_x_filter,
strides=[1, 1, 1, 1], padding='SAME')
filtered_y = tf.nn.conv2d(image_resized, sobel_y_filter,
strides=[1, 1, 1, 1], padding='SAME')
tf.constant([[1, 0, -1], [2, 0, -2], [1, 0, -1]], tf.float32)
最左边的必须与最右边交换。 - j35t3r