遥感影像通常是大幅的,因此直接输入predict模型,会out of memory,通常的处理方案是:
先剪裁-预测小幅影像-拼接
一、剪裁与拼接函数实现
以示例影像为例:4240*3120剪裁成256*256:
#剪裁函数
#剪裁函数
def crop_image(image_path, output_path,crop_size=(256, 256), background_color=0):
image = tf.imread(image_path)
height, width, bands = image.shape
new_width = (width // crop_size[0] + 1) * crop_size[0]
new_height = (height // crop_size[1] + 1) * crop_size[1]
new_image = np.zeros((new_height, new_width, bands))
new_image[:height, :width, :] = image
cropped_images = []
for i in range(0, new_height, crop_size[1]):
for j in range(0, new_width, crop_size[0]):
cropped_image = new_image[i:i +crop_size[1], j:j + crop_size[0], :]
cropped_images.append(cropped_image)
tf.imwrite(os.path.join(output_path, f"cropped_{i}_{j}.tif"),cropped_image)
ret

文章介绍了在处理大规模遥感影像时,由于内存限制需要先剪裁后预测再拼接的步骤。针对可能出现的接缝问题,提出了通过增加padding来消除边缘预测误差的方法,从而改善拼接后的图像质量。这种方法利用影像分块叠加策略,确保了块与块之间的重叠区域可以提供更准确的预测结果。
最低0.47元/天 解锁文章
6083





