import os gt_folder = "/vast/ds5725/linefinder/LineFinder/GT_json" img_folder = "/scratch/ds5725/linefinder/LineFinder/Images" output_txt = "images_without_gt.txt" # 1️⃣ Collect GT names gt_names = set() for dirpath, _, filenames in os.walk(gt_folder): for fname in filenames: if fname.lower().endswith(".json"): gt_names.add(os.path.splitext(fname)[0]) # 2️⃣ Collect image paths img_paths = {} for dirpath, _, filenames in os.walk(img_folder): for fname in filenames: if fname.lower().endswith((".jpg", ".jpeg", ".png", ".webp")): key = os.path.splitext(fname)[0] img_paths[key] = os.path.join(dirpath, fname) # 3️⃣ Compute missing missing_keys = sorted(set(img_paths.keys()) - gt_names) # 4️⃣ Write full paths with open(output_txt, "w") as f: for key in missing_keys: f.write(img_paths[key] + "\n") print(f"Saved {len(missing_keys)} image paths to {output_txt}")