【问题标题】:Matrix Transformation for image图像的矩阵变换
【发布时间】:2021-12-29 03:00:49
【问题描述】:

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

我以为它类似于矩阵变换并尝试过但它不起作用,我已经取了红点的坐标

【问题讨论】:

  • 问题是什么?

标签: image-processing matrix matrix-multiplication matplotlib-basemap


【解决方案1】:

只需减去 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)的最终答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多