def __call__(self, img, gt): img, gt = random_mirror(img, gt) if config.train_scale_array is not None: img, gt, scale = random_scale(img, gt, config.train_scale_array) img = normalize(img, self.img_mean, self.img_std) crop_size = (config.image_height, config.image_width) crop_pos = generate_random_crop_pos(img.shape[:2], crop_size) p_img, _ = random_crop_pad_to_shape(img, crop_pos, crop_size, 0) p_gt, _ = random_crop_pad_to_shape(gt, crop_pos, crop_size, 0) # scaled_gt = cv2.resize(p_gt, ( # config.image_width // 8, config.image_height // 8), # interpolation=cv2.INTER_NEAREST) # # C = config.num_classes + 1 # one_hot_gt = convert_to_one_hot(scaled_gt.astype(np.int), C) # similarity_gt = np.dot(one_hot_gt, one_hot_gt.T) p_img = p_img.transpose(2, 0, 1) # p_gt = p_gt - 1 extra_dict = None return p_img, p_gt, extra_dict
def __call__(self, img, gt, edge, midline): img, gt, edge, midline = random_mirror(img, gt, edge, midline) gt = img_to_black(gt) edge = img_to_black(edge) midline = img_to_black(midline) if config.train_scale_array is not None: img, gt, scale, edge, midline = random_scale( img, gt, config.train_scale_array, edge, midline) img = normalize(img, self.img_mean, self.img_std) p_img, p_gt, p_edge, p_midline = img, gt, edge, midline p_img = cv2.resize(p_img, (config.image_width // config.gt_down_sampling, config.image_height // config.gt_down_sampling), interpolation=cv2.INTER_NEAREST) p_gt = cv2.resize(p_gt, (config.image_width // config.gt_down_sampling, config.image_height // config.gt_down_sampling), interpolation=cv2.INTER_NEAREST) p_edge = cv2.resize(p_edge, (config.image_width // config.gt_down_sampling, config.image_height // config.gt_down_sampling), interpolation=cv2.INTER_NEAREST) p_midline = cv2.resize( p_midline, (config.image_width // config.gt_down_sampling, config.image_height // config.gt_down_sampling), interpolation=cv2.INTER_NEAREST) p_img = p_img.transpose(2, 0, 1) extra_dict = None if p_gt.max() > 1: print(p_gt) return p_img, p_gt, extra_dict, p_edge, p_midline
def __call__(self, img, gt): #flip img, gt = random_mirror(img, gt) #according the paper if config.train_scale_array is not None: img, gt, scale = random_scale(img, gt, config.train_scale_array) id255 = np.where(gt == 255) no255_gt = np.array(gt) no255_gt[id255] = 0 cgt = cv2.Canny(no255_gt, 5, 5, apertureSize=7) #get border imformation from canny cgt = cv2.dilate(cgt, self.edge_kernel) cgt[cgt == 255] = 1 #img white img = normalize(img, self.img_mean, self.img_std) crop_size = (config.image_height, config.image_width) crop_pos = generate_random_crop_pos(img.shape[:2], crop_size) p_img, _ = random_crop_pad_to_shape(img, crop_pos, crop_size, 0) p_gt, _ = random_crop_pad_to_shape(gt, crop_pos, crop_size, 255) p_cgt, _ = random_crop_pad_to_shape(cgt, crop_pos, crop_size, 255) p_img = p_img.transpose(2, 0, 1) extra_dict = {'aux_label': p_cgt} return p_img, p_gt, extra_dict
def __call__(self, img, gt, edge, midline): img, gt, edge, midline = random_mirror( img, gt, edge, midline) # images are randomly flipped to increase variance gt = img_to_black(gt) # binary filter on gt. edge = img_to_black(edge) midline = img_to_black(midline) if config.train_scale_array is not None: img, gt, scale, edge, midline = random_scale( img, gt, config.train_scale_array, edge, midline) # scale the images with supplied list img = normalize(img, self.img_mean, self.img_std) crop_size = (200, 200) crop_pos = generate_random_crop_pos( img.shape[:2], crop_size) # obtain random location p_img, _ = random_crop_pad_to_shape( img, crop_pos, crop_size, 0) # get the cropped images and re-sized to crop-size p_gt, _ = random_crop_pad_to_shape(gt, crop_pos, crop_size, -1) p_edge, _ = random_crop_pad_to_shape(edge, crop_pos, crop_size, -1) p_midline, _ = random_crop_pad_to_shape(midline, crop_pos, crop_size, -1) p_img = cv2.resize( p_img, (config.image_width // config.gt_down_sampling, config.image_height // config.gt_down_sampling), interpolation=cv2.INTER_NEAREST) # resize by downsampling p_gt = cv2.resize(p_gt, (config.image_width // config.gt_down_sampling, config.image_height // config.gt_down_sampling), interpolation=cv2.INTER_NEAREST) p_edge = cv2.resize(p_edge, (config.image_width // config.gt_down_sampling, config.image_height // config.gt_down_sampling), interpolation=cv2.INTER_NEAREST) p_midline = cv2.resize( p_midline, (config.image_width // config.gt_down_sampling, config.image_height // config.gt_down_sampling), interpolation=cv2.INTER_NEAREST) p_img = p_img.transpose(2, 0, 1) extra_dict = None if p_gt.max() > 1: print(p_gt) return p_img, p_gt, extra_dict, p_edge, p_midline
def __call__(self, img, gt): img, gt = random_mirror(img, gt) if config.train_scale_array is not None: img, gt, scale = random_scale(img, gt, config.train_scale_array) img = normalize(img, self.img_mean, self.img_std) crop_size = (config.image_height, config.image_width) crop_pos = generate_random_crop_pos(img.shape[:2], crop_size) p_img, _ = random_crop_pad_to_shape(img, crop_pos, crop_size, 0) p_gt, _ = random_crop_pad_to_shape(gt, crop_pos, crop_size, 0) p_img = p_img.transpose(2, 0, 1) extra_dict = None return p_img, p_gt, extra_dict
def __call__(self, img, gt): img, gt = random_mirror(img, gt) if self.config.train_scale_array is not None: img, gt, scale = random_scale(img, gt, self.config.train_scale_array) img = normalize(img, self.img_mean, self.img_std) crop_size = (self.config.image_height, self.config.image_width) crop_pos = generate_random_crop_pos(img.shape[:2], crop_size) p_img, _ = random_crop_pad_to_shape(img, crop_pos, crop_size, 0) p_gt, _ = random_crop_pad_to_shape(gt, crop_pos, crop_size, 255) p_gt = cv2.resize(p_gt, (self.config.image_width // self.config.gt_down_sampling, self.config.image_height // self.config.gt_down_sampling), interpolation=cv2.INTER_NEAREST) p_img = p_img.transpose(2, 0, 1) extra_dict = None return p_img, p_gt, extra_dict
def __call__(self, img, gt): (img, gt) = random_mirror(img, gt) gt = img_to_black(gt) if config.train_scale_array is not None: (img, gt, scale) = random_scale(img, gt, config.train_scale_array) img = normalize(img, self.img_mean, self.img_std) (p_img, p_gt) = (img, gt) p_img = cv2.resize(p_img, (config.image_width // config.gt_down_sampling, config.image_height // config.gt_down_sampling), interpolation=cv2.INTER_NEAREST) p_gt = cv2.resize(p_gt, (config.image_width // config.gt_down_sampling, config.image_height // config.gt_down_sampling), interpolation=cv2.INTER_NEAREST) p_img = p_img.transpose(2, 0, 1) extra_dict = None return (p_img, p_gt, extra_dict)
def __call__(self, img, gt): img, gt = random_mirror( img, gt) # images are randomly flipped to increase variance gt = img_to_black(gt) # binary filter on gt. if config.train_scale_array is not None: img, gt, scale = random_scale( img, gt, config.train_scale_array ) # scale the images with supplied list img = normalize(img, self.img_mean, self.img_std) crop_size = (200, 200) crop_pos = generate_random_crop_pos(img.shape[:2], crop_size) p_img, _ = random_crop_pad_to_shape( img, crop_pos, crop_size, 0) # get the cropped images and re-sized to crop-size p_gt, _ = random_crop_pad_to_shape(gt, crop_pos, crop_size, 255) # value= p_img = cv2.resize(p_img, (config.image_width // config.gt_down_sampling, config.image_height // config.gt_down_sampling), interpolation=cv2.INTER_NEAREST) p_gt = cv2.resize(p_gt, (config.image_width // config.gt_down_sampling, config.image_height // config.gt_down_sampling), interpolation=cv2.INTER_NEAREST) p_img = p_img.transpose(2, 0, 1) extra_dict = None return p_img, p_gt, extra_dict
def __getitem__(self, index): datafiles = self.files[index] image = cv2.imread(datafiles["img"], cv2.IMREAD_COLOR) label = cv2.imread(datafiles["label"], cv2.IMREAD_GRAYSCALE) size = image.shape name = datafiles["name"] image = normalize(image, np.array(self.mean), np.array(self.std)) image, label = random_mirror(image, label) if self.scale: image, label, scale = random_scale(image, label, [0.75, 1, 1.25, 1.5, 1.75, 2.0]) crop_pos = generate_random_crop_pos(image.shape[:2], self.crop_size) image, _ = random_crop_pad_to_shape(image, crop_pos, self.crop_size, 0) label, _ = random_crop_pad_to_shape(label, crop_pos, self.crop_size, 255) image = image.transpose(2, 0, 1) return image.copy(), label.copy(), np.array(size), name