0

我有一个坐标系 4.3、50.8、4.4、50.9,我想将该框中的点转换为 4800X4800 像素的框。python 语言中是否有任何东西可以帮助进行这些转换,还是我必须自己编写数学?

4

2 回答 2

0

你可以这样写:

def remap_coords(x, y, x_min=4.3, y_min=50.8,
                 x_max=4.4, y_max=50.9, width=4800, height=4800):
    new_x = (x - x_min) / (x_max - x_min) * width
    new_y = (y - y_min) / (y_max - y_min) * height
    return (int(round(new_x)), int(round(new_y)))
于 2013-11-10T01:33:05.437 回答
0

如果我了解您的需求,那么我会为此推荐 numpy:http ://www.numpy.org/

以下是我会使用的方法:

y = numpy.linspace(50.8,50.9,4800)
x = numpy.linspace(4.3,4.4,4800)
x,y = numpy.meshgrid(x,y)

在这种情况下,linspace 将生成 4800 个值,线性插值在 y 的 50.8 和 50.9 之间,以及 x 的 4.3 和 4.4 之间。然后使用 meshgrid 将这些 1D 坐标数组形成为 x 和 y 值的两个 2D 坐标数组(大小均为 4800 x 4800 像素)。

于 2013-11-10T02:06:10.977 回答