def compute_hugin_camera_rotations_processed(self): cfg = self.cfg if cfg.args.vidstab_prjn > -1: vidstab_dir = cfg.prjn_dir2_vidstab_prjn else: vidstab_dir = cfg.prjn_dir2_vidstab_orig if not utils.to_upd_camera_rotations_processed(vidstab_dir): return frames_dir = cfg.frames_input_processed imgs = sorted(os.listdir(frames_dir)) self.canv_half_hfov = math.radians(self.rectilinear_pto.canv_half_hfov) max_horizont_tan = math.tan(self.canv_half_hfov) self.tan_pix = max_horizont_tan / (self.rectilinear_pto.canvas_w / 2) ## # f_motions = open(path.join(vidstab_dir, 'global_motions.trf')) # transforms_rel = utils.get_global_motions(f_motions) s = dt.datetime.now() transforms_rel = utils.parseTransformsTrf( path.join(vidstab_dir, 'transforms.trf')) e = dt.datetime.now() - s utils.print_time(e.total_seconds(), fps=True) ## transforms_abs = utils.convert_relative_transforms_to_absolute( transforms_rel) transforms_abs_filtered = utils.gauss_filter(cfg.fps, transforms_abs, cfg.args.smoothing) self.pto_txt = utils.create_pto_txt_one_image(cfg.pto.filepath) tasks = [] for i, t in enumerate(zip(transforms_abs_filtered, transforms_rel)): path_img = path.join(frames_dir, imgs[i]) tasks.append((t[0], path_img, t[1])) utils.delete_files_in_dir(cfg.hugin_projects_processed) self.prjn_frames_total = len(tasks) self.prjn_frames_cnt = 0 s = dt.datetime.now() with Pool(int(cfg.args.num_cpus)) as p: print('Rolling shutter, create Hugin pto files with camera moves.') results = [ p.apply_async(self.camera_moves_processed_worker, args=(t, ), callback=self.prjn_worker_callback) for t in tasks ] for r in results: r.get() e = dt.datetime.now() - s utils.print_time(e.total_seconds(), fps=True)
def mainloop(options, profile): log.info("Executing mainloop() ...") board_cache_dir_path = os.path.join(options["cache_dir_path"], "boards") if options["use_cache_on_first_run"]: log.info( "--use-cache flag enabled, not removing the " " contents of cache directory {}.".format(board_cache_dir_path) ) else: try: utils.delete_files_in_dir(board_cache_dir_path) except FileNotFoundError: log.info( "FileNotFoundError while trying to remove the contents " "of cache directory {}.".format(board_cache_dir_path) ) else: log.info("Successfully removed contents of cache directory {}.".format(board_cache_dir_path)) dl_error_count = 0 while True: if dl_error_count >= 10: print() error_wait_seconds = 60 log.warning( "Failed to fetch data 10 times, waiting " "{} seconds before retrying ...".format(error_wait_seconds) ) utils.sleep(error_wait_seconds) dl_error_count = 0 utils.clear_terminal() log.info("Executing main() ...") try: main(options, profile) except core.DownloadError as err: dl_error_count += 1 log.error("{}. Retrying ...".format(err)) continue except core.ConfigError as err: log.critical("{}.".format(err)) utils.exit(1) else: log.info("main() executed successfully.") if options["single_run"]: log.info("--single-run flag enabled, exiting ...") print() utils.exit(0) dl_error_count = 0 utils.sleep(options["refresh_time"]) utils.delete_files_in_dir(board_cache_dir_path)
def cleanup(self): clean_dir = os.path.join(parent_dir(__file__), "examples") delete_files_in_dir(clean_dir, ["README"])
def try_to_remove(self): utils.delete_files_in_dir(self.dir_path) os.rmdir(self.dir_path)