首页 > 解决方案 > 使用 tf.image.extract_glimpse 的问题

问题描述

以下代码的结果让我感到困惑

x = [
        [
            [[0.0],[1.0],[2.0], [100.0], [1]],
            [[3.0],[4.0],[5.0], [1000.0], [7]],
            [[6.0],[7.0],[8.0], [10000.0], [1]],
            [[77.0],[78.0],[79.0], [80.0], [5]],
            [[77.0],[78.0],[79.0], [80.0], [1]]
        ]
    ]


res = tf.image.extract_glimpse(x, size=(3, 3), offsets=[[-3, -3]],
                        centered=True, normalized=False)

offset的值相对于 5x5 矩阵的中心(2, 2),因为 centered设置为True

(1)offset = [[-1, -1]] ( (1, 1) 作为3x3矩阵的左上角), res =

tf.Tensor(
    [
        [
            [[4.0e+00] [5.0e+00] [1.0e+03]]
            [[7.0e+00] [8.0e+00] [1.0e+04]]
            [[7.8e+01] [7.9e+01] [8.0e+01]]
        ]
    ], shape=(1, 3, 3, 1), dtype=float32)

(2)offset = [[-2, -2]] ( (0, 0) 作为3x3矩阵的左上角), res =

tf.Tensor(
[
    [
        [[0.] [1.] [2.]]
        [[3.] [4.] [5.]]
        [[6.] [7.] [8.]]
    ]
], shape=(1, 3, 3, 1), dtype=float32)

(3)offset = [[-3, -3]] ( (-1, -1) 作为3x3矩阵的左上角), res =

tf.Tensor(
[
    [
        [[0.] [1.] [2.]]
        [[3.] [4.] [5.]]
        [[6.] [7.] [8.]]
    ]
], shape=(1, 3, 3, 1), dtype=float32)

(2) 与 (3) 相同的答案。
我期望的结果:

# rd is random number
tf.Tensor(
[
    [
        [[rd] [rd] [rd]]
        [[rd] [0.] [1.]]
        [[rd] [3.] [4.]]
    ]
], shape=(1, 3, 3, 1), dtype=float32)

标签: pythontensorflowimage-processing

解决方案


推荐阅读