Esempio n. 1
0
def verify_user_settings(context):
    from wrappers.frame.frame import Frame

    input_frames_dir = context.input_frames_dir
    extension_type = context.extension_type
    block_size = context.block_size

    f1 = Frame()
    f1.load_from_string(input_frames_dir + "frame1" + extension_type)

    valid = True

    if f1.width % block_size != 0 and f1.height % block_size != 0:
        print("----------------------ERROR---------------------------------------")
        print("Your block size is incompatible with the resolution you provided. ")
        print("Valid Block sizes are:")
        print("------------------------------------------------------------------")
        valid_sizes = []

        larger_val = [f1.width, f1.height][f1.height > f1.width]

        for x in range(1, larger_val):
            if f1.width % x == 0 and f1.height % x == 0:
                valid_sizes.append(x)

        print(valid_sizes)
        print("------------------------------------------------------------------")
        new_block_size = int(input("Enter your value (recommended 25 or greater): "))

        while new_block_size not in valid_sizes:
            new_block_size = int(input("Invalid Choice! Re-Enter a correct value: "))

        context.block_size = new_block_size
Esempio n. 2
0
def main():
    block_size = 4
    scale_factor = 2

    frame_base = Frame()
    frame_base.load_from_string("C:\\Users\\windwoz\\Desktop\\image_research\\shelter\\merged2x.jpg")
    list_predictive = get_list_from_file("C:\\Users\\windwoz\\Desktop\\image_research\\shelter\\correction.txt")
    out_location = ("C:\\Users\\windwoz\\Desktop\\image_research\\shelter\\new_correction.jpg")

    correct_image(block_size, scale_factor, frame_base, list_predictive, out_location)
Esempio n. 3
0
def compress_frames(context: Context):
    inputs_dir = context.input_frames_dir
    frame_count = context.frame_count
    quality_moving_ratio = context.quality_moving_ratio
    compressed_static_dir = context.compressed_static_dir
    compressed_moving_dir = context.compressed_moving_dir
    quality_minimum = context.quality_minimum
    extension_type = context.extension_type

    for x in range(1, frame_count + 1):
        if os.path.exists(compressed_static_dir + "compressed_" + str(x) +
                          ".jpg"):
            continue

        frame = Frame()
        frame.load_from_string(inputs_dir + "frame" + str(x) + extension_type)
        frame.save_image_quality(
            compressed_static_dir + "compressed_" + str(x) + ".jpg",
            quality_minimum)
        frame.save_image_quality(
            compressed_moving_dir + "compressed_" + str(x) + ".jpg",
            int(quality_minimum * quality_moving_ratio))
Esempio n. 4
0
def compress_frames(context: Context):
    """
    Use frame's save_image_quality function to save a series of compressed images, which are used in
    Dandere2x_Cpp as a loss function. This function on it's own is a bit esoteric - I recommend reading
    the white paper to understand why we need to compress these frames.

    Input:
        - context

    Output:
        - All the images in 'input_frames' compressed into two different folders, each with their own
          level of compression.
    """

    inputs_dir = context.input_frames_dir
    frame_count = context.frame_count
    quality_moving_ratio = context.quality_moving_ratio
    compressed_static_dir = context.compressed_static_dir
    compressed_moving_dir = context.compressed_moving_dir
    quality_minimum = context.quality_minimum
    extension_type = context.extension_type

    # start from 1 because ffmpeg's extracted frames starts from 1
    for x in range(1, frame_count + 1):

        # if the compressed frame already exists, don't compress it
        if os.path.exists(compressed_static_dir + "compressed_" + str(x) +
                          ".jpg"):
            continue

        frame = Frame()
        frame.load_from_string(inputs_dir + "frame" + str(x) + extension_type)
        frame.save_image_quality(
            compressed_static_dir + "compressed_" + str(x) + ".jpg",
            quality_minimum)
        frame.save_image_quality(
            compressed_moving_dir + "compressed_" + str(x) + ".jpg",
            int(quality_minimum * quality_moving_ratio))
Esempio n. 5
0
#
# from dandere2x import Dandere2x
# import json
# from context import Context
#
# start = time.time()
#
# # resume only works if
#
# with open("dandere2x_win32.json", "r") as read_file:
#     config_json = json.load(read_file)
#
# context = Context(config_json)
#
# d = Dandere2x(context)
# d.resume_concurrent()
#
# end = time.time()
#
# print("\n duration: " + str(time.time() - start))
#
#

from wrappers.frame.frame import Frame

f = Frame()

f.load_from_string(
    "C:\\Users\\windwoz\\Documents\\github_projects\\src\\workspace\\workspace1\\inputs\\frame1.jpg"
)