Пример #1
0
    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
Пример #3
0
    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
Пример #5
0
    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
Пример #6
0
    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
Пример #9
0
    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