Exemplo n.º 1
0
def original_color_transform(content, generated, mask=None):
    generated = fromimage(toimage(generated, mode='RGB'), mode='YCbCr')  # Convert to YCbCr color space

    if mask is None:
        generated[:, :, 1:] = content[:, :, 1:]  # Generated CbCr = Content CbCr
    else:
        width, height, channels = generated.shape

        for i in range(width):
            for j in range(height):
                if mask[i, j] == 1:
                    generated[i, j, 1:] = content[i, j, 1:]

    generated = fromimage(toimage(generated, mode='YCbCr'), mode='RGB')  # Convert to RGB color space
    return generated
Exemplo n.º 2
0
  def test(self, config):
    """
    Output: bicubic image and SRCNN image pairs
    """
    self.loadModel()
    image_paths = prepare_data(self.sess, dataset="Test")
    avg_psnr_srcnn = 0
    avg_psnr_bicubic = 0
    for image_path in image_paths:
        image_dir, image_name = os.path.split(image_path)
        nx, ny, bicubic_img, ground_truth = input_setup(self.sess, config, image_path)
        data_dir = os.path.join('./{}'.format(config.checkpoint_dir), "test.h5")

        train_data, train_label = read_data(data_dir) # train_data(bicubic):(33, 33); train_label(gt):(21, 21)
        result = self.pred.eval({self.images: train_data, self.labels: train_label}) 

        PSNR_bicubic = PSNR(train_data, train_label)
        PSNR_srcnn = PSNR(result, train_label)
        avg_psnr_bicubic += PSNR_bicubic
        avg_psnr_srcnn += PSNR_srcnn

        result = merge(result, [nx, ny]) # result(SRCNN):(21, 21)
        result = result.squeeze()
        image_dir = os.path.join(os.getcwd(), config.sample_dir)
        image_path = os.path.join(image_dir, image_name)
        bicubic_path = os.path.join(image_dir, "bicubic_"+image_name)

        px = 1/plt.rcParams['figure.dpi']  # pixel in inches
        width = max(ground_truth.shape[0], ground_truth.shape[1])
        
        # plot image
        plt.figure(image_name, figsize=(2*width*px,3*width*px))
        ax1 = plt.subplot(3,1,1)
        ax1.set_title("SRCNN - PSNR - " + str(PSNR_srcnn))
        plt.imshow(toimage(result), cmap='gray')
        ax2 = plt.subplot(3,1,2)
        ax2.set_title("Bicubic - PSNR - " + str(PSNR_bicubic))
        plt.imshow(toimage(bicubic_img), cmap='gray')
        ax3 = plt.subplot(3,1,3)
        ax3.set_title("Ground Truth")
        plt.imshow(toimage(ground_truth), cmap='gray')
        plt.savefig(image_path)
        plt.close()
    avg_psnr_srcnn /= len(image_paths)
    avg_psnr_bicubic /= len(image_paths)
    print("average PSNR of srcnn = {}\n average PSNR of bicubic = {}".format(avg_psnr_srcnn, avg_psnr_bicubic))
def original_color_transform(content, generated, mask=None, hist_match=0, mode='YCbCr'):
    generated = fromimage(toimage(generated, mode='RGB'), mode=mode)  # Convert to YCbCr color space

    if mask is None:
        if hist_match == 1:
            for channel in range(3):
                generated[:, :, channel] = match_histograms(generated[:, :, channel], content[:, :, channel])
        else:
            generated[:, :, 1:] = content[:, :, 1:]
    else:
        width, height, channels = generated.shape

        for i in range(width):
            for j in range(height):
                if mask[i, j] == 1:
                    if hist_match == 1:
                        for channel in range(3):
                            generated[i, j, channel] = match_histograms(generated[i, j, channel], content[i, j, channel])
                    else:
                        generated[i, j, 1:] = content[i, j, 1:]

    generated = fromimage(toimage(generated, mode=mode), mode='RGB')  # Convert to RGB color space
    return generated
Exemplo n.º 4
0
    for trgimg in targetfiles:
        if trgimg.endswith('.png'):
            targetimgs.append(trgimg)

    # Start converting
    num_source_img = 0
    for srcimg in sourceimgs:
        num_source_img += 1
        im_src = Image.open(sourcepath + srcimg).convert('RGB')
        if RANDOM_TARGET:
            random_tar = random.choice(targetimgs)
        elif GUIDED_TARGET:
            random_tar = matcher_dict[srcimg]
        im_trg = Image.open(targetpath + random_tar).convert('RGB')

        w, h = im_src.size[0], im_src.size[1]
        im_src = im_src.resize((w, h), Image.BICUBIC)
        im_trg = im_trg.resize((w, h), Image.BICUBIC)

        im_src = np.asarray(im_src, np.float32)
        im_trg = np.asarray(im_trg, np.float32)

        im_src = im_src.transpose((2, 0, 1))
        im_trg = im_trg.transpose((2, 0, 1))
        src_in_trg = FDA_source_to_target_np(im_src, im_trg, L=0.01)

        src_in_trg = src_in_trg.transpose((1, 2, 0))
        print('converting: ', srcimg, 'target: ', random_tar,
              "(" + str(num_source_img) + ")")
        toimage(src_in_trg, cmin=0.0, cmax=255.0).save(savepath + srcimg)