diff --git a/main.py b/main.py index 8939656..fbfa801 100644 --- a/main.py +++ b/main.py @@ -86,10 +86,10 @@ return transform(Image.open(image_path).convert("RGB")).unsqueeze(0) -def process_images(base_dir): +def process_images(base_dir, output_dir): ears_ai = EarsAI() calc_position = CalcStethoscopePosition() - results_dir = os.path.join(os.path.dirname(base_dir), "results") + results_dir = os.path.join(output_dir, "results") csv_path = os.path.join(results_dir, "results.csv") pose_overlay_dir = os.path.join(results_dir, "pose_overlay_image") stethoscope_overlay_dir = os.path.join(results_dir, "stethoscope_overlay_image") @@ -207,15 +207,15 @@ writer.writerow(row) print(f"Processed and saved results to: {csv_path}") - generate_visualizations(csv_path, base_dir) + generate_visualizations(csv_path, base_dir, output_dir) else: print("No data to write to CSV.") -def generate_visualizations(csv_path, original_images_dir): +def generate_visualizations(csv_path, original_images_dir, output_dir): df = pd.read_csv(csv_path) - body_image = cv2.imread("images/body/BodyF.png") - results_dir = "images/body/results" + body_image = cv2.imread(os.path.join(output_dir, "images", "body", "BodyF.png")) + results_dir = os.path.join(output_dir, "results") os.makedirs(results_dir, exist_ok=True) dirs = {"marked": "marked_images"} @@ -314,5 +314,19 @@ args = parser.parse_args() - video_to_frames(args.video_path, args.output_dir) - process_images(args.output_dir) + # Create output directory structure + os.makedirs(args.output_dir, exist_ok=True) + os.makedirs(os.path.join(args.output_dir, "images", "body"), exist_ok=True) + + # Copy BodyF.png to the output directory + body_image_src = "./images/body/BodyF.png" + body_image_dst = os.path.join(args.output_dir, "images", "body", "BodyF.png") + if not os.path.exists(body_image_dst): + import shutil + + shutil.copy(body_image_src, body_image_dst) + + frames_dir = os.path.join(args.output_dir, "frames") + video_to_frames(args.video_path, frames_dir) + process_images(frames_dir, args.output_dir) + generate_visualizations(os.path.join(args.output_dir, "results", "results.csv"), frames_dir, args.output_dir)