換了新的公司,在工作中遇到一個問題,把尺寸較大的圖片輸入網絡中,無法直接輸入,裁剪成網絡要求的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]
完成效果圖