代码之家  ›  专栏  ›  技术社区  ›  Christin Abel

用python中其他图像的值替换光栅图像中的区域

  •  0
  • Christin Abel  · 技术社区  · 8 年前

    我有两个光栅图像,它们的面积和x,y维度与numpy数组相同。图1是土地利用分类(例如,0到5类),图2是云阴影遮罩(值为0=无云,255=云/阴影区域)。
    我想合并这些图像。从图像2中获取/剪辑所有255个值,并将其镶嵌到图像1上。或者将图像2中的所有0值替换为图像1中特定像素位置的值。

    我尝试将2d数组设为1d并替换0值,但无法将其正确转换回2d。

    用python完全开源进行光栅计算,最简单或最好的方法是什么???

    1 回复  |  直到 8 年前
        1
  •  0
  •   Chris Mueller    8 年前

    您可以使用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]]