换了新的公司,在工作中遇到一个问题,把尺寸较大的图片输入网络中,无法直接输入,裁剪成网络要求的shp大小再拼接,会出现接边很明显的问题,但是网络输入尺寸大小固定,也不能改图片的大小,因此采用识别两次的方法,解决图像接边问题,但是可能不是最优的方法,先记录下来。
print("处理接边")
for i in range(padding_h // stride):
for j in tqdm.tqdm(range(padding_w // stride)):
if i < (padding_h // stride)-1 and j < (padding_w // stride)-1:
crop2 = padding_img[i * stride+128:i * stride + image_size+128, j * stride+128:j * stride + image_size+128, :]
crop2 = np.expand_dims(crop2, axis=0) # 喂入的数据要求是(n, 256,256,3) 但是实际上维度是不满足的
pred2 = model.predict(crop2, verbose=2) # 使用模型进行预测,预测数据导入
# print (np.unique(pred))
pred2 = pred2.reshape((256, 256)).astype(np.uint8) # 将结果整理为256*256
# print 'pred:',pred.shape
mask_whole[i * stride+128+2:i * stride+ image_size+128-2, j * stride+128+2:j * stride + image_size+128-2] = pred2[2:-2,
2:-2]
完成效果图