Spaces:
Sleeping
Sleeping
| import os | |
| import csv | |
| import glob | |
| from typing import List, Dict | |
| from config.paths import output_csv_file | |
| def get_frames_from_folder(folder_path: str, extensions=('.jpg', '.jpeg', '.png', '.bmp', '.tiff')) -> List[str]: | |
| """Extract paths of all image files from a specified folder.""" | |
| frame_paths = [] | |
| if not os.path.exists(folder_path): | |
| print(f"Error: Folder {folder_path} does not exist") | |
| return frame_paths | |
| for ext in extensions: | |
| frame_paths.extend(glob.glob(os.path.join(folder_path, f'*{ext}'))) | |
| frame_paths.sort() | |
| print(f"Found {len(frame_paths)} frames in folder {folder_path}") | |
| return frame_paths | |
| _csv_initialized = False | |
| def save_description_to_csv(result: Dict[str, any], output_csv_file: str= output_csv_file) -> bool: | |
| """Save important frame description to a CSV file (overwrite on first write).""" | |
| global _csv_initialized | |
| if "description" not in result or not result["description"]: | |
| print(f" No description available for frame: {result.get('frame', '')}") | |
| return False | |
| description = result["description"] | |
| row = { | |
| "Image Name": description.get("image_name", os.path.basename(result.get("path", ""))), | |
| "Extracted Text": description.get("extracted_text", "No extracted text"), | |
| "Visual Description": description.get("visual_description", "No visual description") | |
| } | |
| print(f" Extracted text ({len(row['Extracted Text'])} chars): {row['Extracted Text'][:50]}...") | |
| print(f" Visual description ({len(row['Visual Description'])} chars): {row['Visual Description'][:50]}...") | |
| try: | |
| mode = 'w' if not _csv_initialized else 'a' | |
| with open(output_csv_file, mode, newline='', encoding='utf-8') as csvfile: | |
| writer = csv.DictWriter(csvfile, fieldnames=["Image Name", "Extracted Text", "Visual Description"]) | |
| if not _csv_initialized: | |
| writer.writeheader() | |
| _csv_initialized = True | |
| writer.writerow(row) | |
| print(f" Frame description saved to {output_csv_file}") | |
| return True | |
| except Exception as e: | |
| print(f" Error saving frame description: {str(e)}") | |
| return False | |