def prepare_data(_path):
names = os.listdir(_path)
names = sorted(names)
nums = names.__len__()
data = numpy.zeros((nums * Random_Crop, 1, Patch_size, Patch_size), dtype=numpy.double)
label = numpy.zeros((nums * Random_Crop, 1, label_size, label_size), dtype=numpy.double)
for i in range(nums):
name = _path + names[i]
hr_img = cv2.imread(name, cv2.IMREAD_COLOR)
shape = hr_img.shape
hr_img = cv2.cvtColor(hr_img, cv2.COLOR_BGR2YCrCb)
hr_img = hr_img[:, :, 0]
# two resize operation to produce training data and labels
lr_img = cv2.resize(hr_img, (shape[1] / scale, shape[0] / scale))
lr_img = cv2.resize(lr_img, (shape[1], shape[0]))
# produce Random_Crop random coordinate to crop training img
Points_x = numpy.random.randint(0, min(shape[0], shape[1]) - Patch_size, Random_Crop)
Points_y = numpy.random.randint(0, min(shape[0], shape[1]) - Patch_size, Random_Crop)
for j in range(Random_Crop):
lr_patch = lr_img[Points_x[j]: Points_x[j] + Patch_size, Points_y[j]: Points_y[j] + Patch_size]
hr_patch = hr_img[Points_x[j]: Points_x[j] + Patch_size, Points_y[j]: Points_y[j] + Patch_size]
lr_patch = lr_patch.astype(float) / 255.
hr_patch = hr_patch.astype(float) / 255.
data[i * Random_Crop + j, 0, :, :] = lr_patch
label[i * Random_Crop + j, 0, :, :] = hr_patch[conv_side: -conv_side, conv_side: -conv_side]
# cv2.imshow("lr", lr_patch)
# cv2.imshow("hr", hr_patch)
# cv2.waitKey(0)
return data, label
# BORDER_CUT = 8
评论列表
文章目录