我有两个光栅图像,它们的面积和x,y维度与numpy数组相同。图1是土地利用分类(例如,0到5类),图2是云阴影遮罩(值为0=无云,255=云/阴影区域)。 我想合并这些图像。从图像2中获取/剪辑所有255个值,并将其镶嵌到图像1上。或者将图像2中的所有0值替换为图像1中特定像素位置的值。
我尝试将2d数组设为1d并替换0值,但无法将其正确转换回2d。
用python完全开源进行光栅计算,最简单或最好的方法是什么???
您可以使用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]]