图像的矩阵变换

Matrix Transformation for image

我正在 python 进行图像处理项目,我需要在其中更改坐标系

我以为是类比矩阵变换试过不行,我取了红点的坐标

简单地减去 256 再除以 512。连接是你看到 256 的值映射到 0。因此,0 映射到 -256,256 映射到 0,512 映射到 256。但是,您还需要这些值在 [-0.5, 0.5] 的范围内。将所有内容除以 512 即可完成此操作。

因此关系是:

out = (in - 256) / 512 = (in / 512) - 0.5

从上面的示例输入中尝试一些值,让自己相信这是正确的关系。

如果您想将其形成为矩阵乘法,则可以将其解释为具有缩放和平移但没有旋转的仿射变换:

    [ 1/512 0   -0.5 ]
K = [   0 1/512 -0.5 ]
    [   0   0     1  ]

请注意,您需要使用齐次坐标才能获得所需的结果。

例如:

(x, y) = (384, 256)

[X]   [ 1/512 0   -0.5 ][384]
[Y] = [   0 1/512 -0.5 ][256]
[1]   [   0   0     1  ][ 1 ]

[X]   [384/512 - 0.5]   [ 0.25 ]
[Y] = [256/512 - 0.5] = [   0  ]
[1]   [      1      ]   [   1  ]

只需去掉最后一个坐标即可得到最终答案(0.25, 0)。