Пример #1
0
def upscale_image(cfg, src, scale_model, alpha_model=None):
    dst, alpha = split_alpha(src, scale_model)
    for i in range(int(np.ceil(np.log2(cfg.scale_ratio)))):
        six.print_('2.0x upscaling...', end=' ', flush=True)
        model = scale_model if i == 0 or alpha_model is None else alpha_model
        if model.inner_scale == 1:
            dst = iproc.nn_scaling(dst, 2)  # Nearest neighbor 2x scaling
            alpha = iproc.nn_scaling(alpha, 2)  # Nearest neighbor 2x scaling
        if cfg.tta:
            dst = reconstruct.image_tta(dst, model, cfg.tta_level,
                                        cfg.block_size, cfg.batch_size)
        else:
            dst = reconstruct.image(dst, model, cfg.block_size, cfg.batch_size)
        if alpha_model is None:
            alpha = reconstruct.image(alpha, scale_model, cfg.block_size,
                                      cfg.batch_size)
        else:
            alpha = reconstruct.image(alpha, alpha_model, cfg.block_size,
                                      cfg.batch_size)
        six.print_('OK')
    dst_w = int(np.round(src.size[0] * cfg.scale_ratio))
    dst_h = int(np.round(src.size[1] * cfg.scale_ratio))
    if dst_w != dst.size[0] or dst_h != dst.size[1]:
        six.print_('Resizing...', end=' ', flush=True)
        dst = dst.resize((dst_w, dst_h), Image.LANCZOS)
        six.print_('OK')
    if alpha is not None:
        if alpha.size[0] != dst_w or alpha.size[1] != dst_h:
            alpha = alpha.resize((dst_w, dst_h), Image.LANCZOS)
        dst.putalpha(alpha)
    return dst
Пример #2
0
def denoise_image(src, model, cfg):
    six.print_('Level %d denoising...' % cfg.noise_level, end=' ', flush=True)
    if cfg.tta:
        dst = reconstruct.image_tta(src, model, cfg.tta_level, cfg.block_size,
                                    cfg.batch_size)
    else:
        dst = reconstruct.image(src, model, cfg.block_size, cfg.batch_size)
    six.print_('OK')
    return dst
Пример #3
0
def upscale_image(cfg, src, model):
    dst = src.copy()
    six.print_('2.0x scaling...', end=' ', flush=True)
    if model.inner_scale == 1:
        dst = iproc.nn_scaling(dst, 2)  # Nearest neighbor 2x scaling
    if cfg.tta:
        dst = reconstruct.image_tta(dst, model, cfg.tta_level, cfg.block_size,
                                    cfg.batch_size)
    else:
        dst = reconstruct.image(dst, model, cfg.block_size, cfg.batch_size)
    six.print_('OK')
    return dst
Пример #4
0
def denoise_image(cfg, src, model):
    dst = src.copy()
    six.print_('Level {} denoising...'.format(cfg.noise_level),
               end=' ',
               flush=True)
    if cfg.tta:
        dst = reconstruct.image_tta(dst, model, cfg.tta_level, cfg.block_size,
                                    cfg.batch_size)
    else:
        dst = reconstruct.image(dst, model, cfg.block_size, cfg.batch_size)
    if model.inner_scale != 1:
        dst = dst.resize((src.size[0], src.size[1]), Image.LANCZOS)
    six.print_('OK')
    return dst
Пример #5
0
def denoise_image(src, model, cfg):
    dst, alpha = split_alpha(src, model.offset)
    six.print_('Level %d denoising...' % cfg.noise_level, end=' ', flush=True)
    if cfg.tta:
        dst = reconstruct.image_tta(dst, model, cfg.tta_level, cfg.block_size,
                                    cfg.batch_size)
    else:
        dst = reconstruct.image(dst, model, cfg.block_size, cfg.batch_size)
    if model.inner_scale != 1:
        dst = dst.resize((src.size[0], src.size[1]), Image.LANCZOS)
    six.print_('OK')
    if alpha is not None:
        dst.putalpha(alpha)
    return dst
Пример #6
0
def upscale_image(src, model, cfg):
    dst = src
    if model.inner_scale == 1:
        dst = src.resize((src.size[0] * 2, src.size[1] * 2), Image.NEAREST)
    log_scale = np.log2(cfg.scale_factor)
    for _ in range(int(np.ceil(log_scale))):
        six.print_('2.0x upscaling...', end=' ', flush=True)
        if cfg.tta:
            dst = reconstruct.image_tta(dst, model, cfg.tta_level,
                                        cfg.block_size, cfg.batch_size)
        else:
            dst = reconstruct.image(dst, model, cfg.block_size, cfg.batch_size)
        six.print_('OK')
    if np.round(log_scale % 1.0, 6) != 0:
        six.print_('Resizing...', end=' ', flush=True)
        dst_w = int(np.round(src.size[0] * cfg.scale_factor))
        dst_h = int(np.round(src.size[1] * cfg.scale_factor))
        dst = dst.resize((dst_w, dst_h), Image.ANTIALIAS)
        six.print_('OK')
    return dst