gpt4 book ai didi

python - 从较粗糙的栅格中提取图像像素值

转载 作者:太空宇宙 更新时间:2023-11-04 01:17:30 24 4
gpt4 key购买 nike

我有 2 张图片。 Image_1 的分辨率为 250 m,image_2 的分辨率为 500m。这些图像具有完全相同的空间内容和投影。

如何叠加这两幅图像,以便对于 image_1 中的每个像素,我都可以从图像 2 中提取像素值?我尝试了 gdal reprojectimage (reproject image 2),但它确实通过插值重新采样。这对我不起作用,因为重采样会更改 image_2 中的像素值。有什么有效的方法可以做到这一点? Scipy、numpy 或任何类似的工具都很棒。

最佳答案

您可以将重采样方法设置为最近邻,这当然仍然是一种插值方式,但我认为结果正是您所追求的。如果您使用 gdalwarp,您可以输出到 VRT,然后您可以在 Python 中打开它。

或者,您也可以直接在 Python 中放大数组,但这只有在所有空间属性确实相同的情况下才有效。

它可以像这样用 Numpy 来完成:

image2_250m = np.kron(image2_500m, np.ones((2,2)))

这在两个维度上都将其放大了 2 倍。如果您还有一个包含波段的第三维,您想要使用 np.ones((1,2,2)),它将波段/光谱维度缩放为 1(例如什么都不做)。它仍然是最近邻插值的一种形式

例如:

In [1]: import numpy as np

In [2]: a = np.random.randint(0,100, (2,2))

In [3]: a
Out[3]:
array([[38, 85],
[99, 19]])

In [4]: a_hires = np.kron(a, np.ones((2,2)))

In [5]: a_hires
Out[5]:
array([[ 38., 38., 85., 85.],
[ 38., 38., 85., 85.],
[ 99., 99., 19., 19.],
[ 99., 99., 19., 19.]])

关于python - 从较粗糙的栅格中提取图像像素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23485727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com