(img_gt,crop_pad_size)
| 37 | return img_gt |
| 38 | |
| 39 | def random_crop(img_gt,crop_pad_size): |
| 40 | h, w = img_gt.shape[0:2] |
| 41 | # pad |
| 42 | if h < crop_pad_size or w < crop_pad_size: |
| 43 | pad_h = max(0, crop_pad_size - h) |
| 44 | pad_w = max(0, crop_pad_size - w) |
| 45 | img_gt = cv2.copyMakeBorder(img_gt, 0, pad_h, 0, pad_w, cv2.BORDER_REFLECT_101) |
| 46 | # crop |
| 47 | if img_gt.shape[0] > crop_pad_size or img_gt.shape[1] > crop_pad_size: |
| 48 | h, w = img_gt.shape[0:2] |
| 49 | # randomly choose top and left coordinates |
| 50 | top = random.randint(0, h - crop_pad_size) |
| 51 | left = random.randint(0, w - crop_pad_size) |
| 52 | img_gt = img_gt[top:top + crop_pad_size, left:left + crop_pad_size, ...] |
| 53 | return img_gt |
| 54 | |
| 55 | def paired_random_crop(img_gts, img_lqs, gt_patch_size, scale, gt_path=None): |
| 56 | """Paired random crop. Support Numpy array and Tensor inputs. |
no outgoing calls
no test coverage detected