Exemplo n.º 1
0
def inpaint_double_train(img_files):
    img_file_1, img_file_2, fold = img_files
    img_1 = cv2.imread(join(TRAIN_DIR, 'images', img_file_1),
                       cv2.IMREAD_GRAYSCALE)
    trg_1 = cv2.imread(join(TRAIN_DIR, 'masks', img_file_1),
                       cv2.IMREAD_GRAYSCALE)
    img_2 = cv2.imread(join(TRAIN_DIR, 'images', img_file_2),
                       cv2.IMREAD_GRAYSCALE)
    trg_2 = cv2.imread(join(TRAIN_DIR, 'masks', img_file_2),
                       cv2.IMREAD_GRAYSCALE)

    if not np.sum(img_1) or not np.sum(img_2):
        return

    img_1 = np.pad(img_1, PAD_WIDTH, mode='constant')
    trg_1 = np.pad(trg_1, PAD_WIDTH, mode='constant')
    img_2 = np.pad(img_2, PAD_WIDTH, mode='constant')
    trg_2 = np.pad(trg_2, PAD_WIDTH, mode='constant')
    img = np.concatenate([img_1, img_2], axis=1)
    trg = np.concatenate([trg_1, trg_2], axis=1)
    img = (inpaint_biharmonic(img, MASK_INPAINT) * 255).astype(np.uint8)
    trg = inpaint_biharmonic(trg, MASK_INPAINT)
    trg = np.where(trg > TARGET_THRESHOLD, 255, 0)

    img_file = img_file_1[:-4] + '_' + img_file_2[:-4] + '.png'
    make_dir(join(TRAIN_DIR, 'images' + SAVE_NAME, 'fold_%d' % fold))
    make_dir(join(TRAIN_DIR, 'masks' + SAVE_NAME, 'fold_%d' % fold))
    cv2.imwrite(
        join(TRAIN_DIR, 'images' + SAVE_NAME, 'fold_%d' % fold, img_file), img)
    cv2.imwrite(
        join(TRAIN_DIR, 'masks' + SAVE_NAME, 'fold_%d' % fold, img_file), trg)
    return img, trg, img_file
def inpaint_train(img_file):
    img = cv2.imread(join(TRAIN_DIR, 'images', img_file), cv2.IMREAD_GRAYSCALE)
    trg = cv2.imread(join(TRAIN_DIR, 'masks', img_file), cv2.IMREAD_GRAYSCALE)
    img = np.pad(img, PAD_WIDTH, mode='constant')
    trg = np.pad(trg, PAD_WIDTH, mode='constant')
    img = (inpaint_biharmonic(img, MASK_INPAINT) * 255).astype(np.uint8)
    trg = inpaint_biharmonic(trg, MASK_INPAINT)
    trg = np.where(trg > TARGET_THRESHOLD, 255, 0)
    cv2.imwrite(join(TRAIN_DIR, 'images' + SAVE_NAME, img_file), img)
    cv2.imwrite(join(TRAIN_DIR, 'masks' + SAVE_NAME, img_file), trg)
Exemplo n.º 3
0
def remove_text(img):
    th = threshold_otsu(img[:, :, 2])
    mask = img[:, :, 2] > th
    newimg = img.copy()
    newimg[:, :, 2] = 0
    newimg = inpaint_biharmonic(newimg, mask, multichannel=True)
    return newimg
Exemplo n.º 4
0
    def inpaint(self):
        print ' Beginning inpainting. '
        mask = np.zeros(len(self.By))
        for i in range(len(self.By)):
            if math.isnan(self.Bx[i]) or math.isnan(self.By[i]) or math.isnan(
                    self.Bz[i]):
                mask[i] = 1

        self.Bx = skres.inpaint_biharmonic(self.Bx, mask, multichannel=False)
        print ' Bx done'
        self.By = skres.inpaint_biharmonic(self.By, mask, multichannel=False)
        print ' By done'
        self.Bz = skres.inpaint_biharmonic(self.Bz, mask, multichannel=False)
        print ' Bz done'
        if var.plot_comparison == True:
            self.plot_comp['inpainted'] = copy.deepcopy(self.By)
        print ' Inpainting done!'
        return None
Exemplo n.º 5
0
def inpaintBiharmonic():
    img = np.tile(np.square(np.linspace(0, 1, 5)), (5, 1))
    imgO = img.copy()
    mask = np.zeros_like(img)
    mask[2, 2:] = 1
    mask[1, 3:] = 1
    mask[0, 4:] = 1
    imgN = mask.copy()
    out = inpaint_biharmonic(img, mask)
    imgR = out.copy()
    return [imgO, imgN, imgR]
Exemplo n.º 6
0
def inpaint_test(id):
    neighbors = SALT_DATA.get_neighbors(id)
    stacked_image, image_unknown_mask = SALT_DATA.get_stacked_images(neighbors, return_unknown_mask=True)
    center_stacked_image = CENTER_CROP(stacked_image)
    center_image_unknown_mask = CENTER_CROP(image_unknown_mask)
    if np.sum(center_image_unknown_mask):
        inpaint_image = inpaint_biharmonic(center_stacked_image, center_image_unknown_mask)
        inpaint_image = (inpaint_image * 255).astype(np.uint8)
    else:
        inpaint_image = center_stacked_image

    cv2.imwrite(join(TEST_DIR, 'images' + SAVE_NAME, f"{id}.png"), inpaint_image)
Exemplo n.º 7
0
def inpaint_train(id):
    neighbors = SALT_DATA.get_neighbors(id)
    stacked_image, image_unknown_mask = SALT_DATA.get_stacked_images(neighbors, return_unknown_mask=True)
    center_stacked_image = CENTER_CROP(stacked_image)
    center_image_unknown_mask = CENTER_CROP(image_unknown_mask)
    if np.sum(center_image_unknown_mask):
        inpaint_image = inpaint_biharmonic(center_stacked_image, center_image_unknown_mask)
        inpaint_image = (inpaint_image * 255).astype(np.uint8)
    else:
        inpaint_image = center_stacked_image

    stacked_mask, mask_unknown_mask = SALT_DATA.get_stacked_masks(neighbors, return_unknown_mask=True)
    center_stacked_mask = CENTER_CROP(stacked_mask)
    center_mask_unknown_mask = CENTER_CROP(mask_unknown_mask)
    if np.sum(center_mask_unknown_mask):
        inpaint_mask = inpaint_biharmonic(center_stacked_mask, center_mask_unknown_mask)
        inpaint_mask= np.where(inpaint_mask > TARGET_THRESHOLD, 255, 0)
    else:
        inpaint_mask = center_stacked_mask

    cv2.imwrite(join(TRAIN_DIR, 'images' + SAVE_NAME, f"{id}.png"), inpaint_image)
    cv2.imwrite(join(TRAIN_DIR, 'masks' + SAVE_NAME, f"{id}.png"), inpaint_mask)
def inpaint_test(img_file):
    img = cv2.imread(join(TEST_DIR, 'images', img_file), cv2.IMREAD_GRAYSCALE)
    img = np.pad(img, PAD_WIDTH, mode='constant')
    img = (inpaint_biharmonic(img, MASK_INPAINT) * 255).astype(np.uint8)
    cv2.imwrite(join(TEST_DIR, 'images' + SAVE_NAME, img_file), img)
 def time_inpaint_grey(self):
     restoration.inpaint_biharmonic(self.image_defect_gray, self.mask,
                                    **_channel_kwarg(False))
Exemplo n.º 10
0
 def time_inpaint_rgb(self):
     restoration.inpaint_biharmonic(self.image_defect, self.mask,
                                    **_channel_kwarg(True))
Exemplo n.º 11
0
 def time_inpaint_grey(self):
     restoration.inpaint_biharmonic(self.image_defect_gray,
                                    self.mask,
                                    multichannel=False)
Exemplo n.º 12
0
 def time_inpaint_rgb(self):
     restoration.inpaint_biharmonic(self.image_defect,
                                    self.mask,
                                    multichannel=True)