| import pytesseract | |
| from PIL import Image | |
| from backend.core.logger import get_logger | |
| logger = get_logger(__name__) | |
| def extract_text_from_images(image_paths): | |
| texts = [] | |
| logger.info(f"OCR STARTED FOR {len(image_paths)} IMAGES") | |
| for path in image_paths: | |
| try: | |
| logger.info(f"OPENING IMAGE: {path}") | |
| img = Image.open(path) | |
| logger.info(f"RUNNING OCR ON: {path}") | |
| text = pytesseract.image_to_string(img) | |
| logger.info(f"OCR RESULT:\n{text[:1000]}") | |
| texts.append(text) | |
| except Exception as e: | |
| logger.exception(f"OCR FAILED: {e}") | |
| texts.append("") | |
| final_text = "\n".join(texts) | |
| logger.info(f"FINAL OCR TEXT:\n{final_text[:3000]}") | |
| return final_text |