all_band_value = in_ds.ReadAsArray(x, y, patch_size, patch_size)
all_new = all_band_value.transpose(1,2,0)
all_new_sum = all_new[:,:,0]+all_new[:,:,1]+all_new[:,:,2]+all_new[:,:,3]
nodata_pos = np.where(all_new_sum == 0)
all_new_sum[np.where(all_new_sum > 0)] = 255
all_new_sum = all_new_sum.astype(np.uint8)
cv2.imwrite('kk.jpg',all_new_sum)
利用gdal读取影像的值,变换通道,得到所有通道都为0的的像素位置信息,就可以改变值
获得影像的nodata值
in_ds.GetRasterBand(1).GetNoDataValue()
效果如下
生成tif影像,设定tif影像中的nodata值,使用
outband.SetNoDataValue(self.valueNoDataOut)
如下