使用python中另一个图像的值替换栅格图像中的区域

时间:2016-08-10 12:23:42

标签: python numpy open-source gdal

我有两个相同区域的光栅图像,x,y尺寸为numpy数组。图像1是土地利用分类(例如,具有0至5类),并且图像2是云阴影掩模(具有值:0 =无云,255 =云/阴影区域)。
我想要结合这些图像。从图像2中取出/剪切所有255个值并将它们拼接到图像1上。或者将图像2中的所有0值替换为图像1中特定像素位置处的值。

我试图让2d数组1d并替换0值,但然后无法将其正确转换回2d。

在python中完全开源的光栅计算最简单或最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用numpy的布尔索引功能执行此操作。

img1 = np.array([[0, 1, 0, 1],[1, 0, 1, 0]])
img2 = np.array([[1, 2, 3, 4],[5, 6, 7, 8]])
bool_arr = img1 == 0
img1[bool_arr] = img2[bool_arr]
print(img1)
# outputs: [[1 1 3 1]
#           [1 6 1 8]]