实验中,采用 $300 × 300$ 的图像块对级联网络进行训练。对于上述训练集和测试集所有图像,采用如下两个阶段进行数据增强。在第一阶段,给定一幅图像,从图像中 $5$ 个固定位置截取 $300 × 300$ 的图像块(即一个中心图像块和四个角落图像块),且从图像中的其他位置截取 $20$ 个随机的图像块,即一幅图像可以得到 $25$ 个 $300× 300$ 的图像块。在第二阶段,对于第一阶段中所得的每一个图像块,以 $90◦$ 为步长,进行旋转操作,且对所有图像块进行水平和竖直方向的镜像对称操作。对于每个图像块,利用旋转和镜像操作,可以得到另外 7 个不同的图像块。上述两个阶段数据增强方法可以将数据集和测试集图像数量扩大 $200$ 倍($25$ 个采样图像块 2(水平和镜像操作)4(旋转操作))。import cv2
import os
import sys
import time
import numpy as np
import random
filepath = r"C:\Users\Admin\Desktop\TGRS2017数据集\Image"
size = (300,300)
pathDir = os.listdir(filepath)
savename = r"\image"
savenum = 1
def rotate_bound(image, angle):
# 获取图像的尺寸
# 旋转中心
(h, w) = image.shape[:2]
(cx, cy) = (w / 2, h / 2)
# 设置旋转矩阵
M