import os import time import cv2 from baseline import find_baseline from lower_limb_sensitivity import verify_lower_limb_sensitivity from class_small_areas import verify_class_small_areas from bony_roof_length import verify_bony_roof_length from baseline_horizontality import verify_baseline_horizontality masks_dir = "./app/angle_utils/masks" output_file = "./app/scoring_utils/scoring_time.csv" max_masks = 100 def time_function(func, *args): """Pomiar czasu działania funkcji.""" start_time = time.time() try: result = func(*args) except Exception as e: print(f"Error in {func.__name__}: {e}") result = None end_time = time.time() return end_time - start_time, result # Wyniki pomiarów results = { "verify_lower_limb_sensitivity": [], "verify_class_small_areas": [], "verify_bony_roof_length": [], "verify_baseline_horizontality": [] } # Pobranie plików masek mask_files = [f for f in os.listdir(masks_dir) if f.endswith(".png")] for i, mask_file in enumerate(mask_files[:max_masks]): mask_path = os.path.join(masks_dir, mask_file) mask = cv2.imread(mask_path, cv2.IMREAD_GRAYSCALE) if mask is None: print(f"Unable to read mask {mask_file}") continue print(f"Processing {i+1}/{min(len(mask_files), max_masks)}: {mask_file}") # Najpierw obliczenie punktów baseline baseline_time, baseline_points = time_function(find_baseline, mask) if baseline_points is None or len(baseline_points) != 2: print(f"Skipping {mask_file} due to invalid baseline points") continue # Czas dla funkcji verify_lower_limb_sensitivity sensitivity_time, _ = time_function(verify_lower_limb_sensitivity, mask, baseline_points) results["verify_lower_limb_sensitivity"].append(sensitivity_time) # Czas dla funkcji verify_class_small_areas class_small_areas_time, _ = time_function(verify_class_small_areas, mask) results["verify_class_small_areas"].append(class_small_areas_time) # Czas dla funkcji verify_bony_roof_length bony_roof_time, _ = time_function(verify_bony_roof_length, mask) results["verify_bony_roof_length"].append(bony_roof_time) # Czas dla funkcji verify_baseline_horizontality horizontality_time, _ = time_function(verify_baseline_horizontality, baseline_points) results["verify_baseline_horizontality"].append(horizontality_time) # Zapis wyników do pliku CSV with open(output_file, "w") as f: f.write("Function,Average Time (s),Max Time (s),Min Time (s)\n") for func_name, times in results.items(): avg_time = sum(times) / len(times) if times else 0 max_time = max(times) if times else 0 min_time = min(times) if times else 0 f.write(f"{func_name},{avg_time},{max_time},{min_time}\n") print(f"Timing results saved to {output_file}")
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter