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
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)
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))
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))
# # 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" )