Spaces:
Sleeping
Sleeping
| import easyocr | |
| import logging | |
| import numpy as np | |
| from PIL import Image | |
| # Set up logging to suppress unnecessary warnings | |
| logging.getLogger("easyocr").setLevel(logging.ERROR) | |
| def extract_text_from_image(image_input): | |
| """Extract text from an image using EasyOCR.""" | |
| try: | |
| # Initialize EasyOCR reader (English language, CPU mode) | |
| reader = easyocr.Reader(['en'], gpu=False) | |
| # Handle different input types | |
| if isinstance(image_input, str): | |
| # Input is a file path | |
| results = reader.readtext(image_input, detail=0, paragraph=True) | |
| elif isinstance(image_input, (bytes, np.ndarray)): | |
| # Input is bytes or numpy array | |
| results = reader.readtext(image_input, detail=0, paragraph=True) | |
| else: | |
| # Try to open as an image using PIL and convert to numpy array | |
| image = Image.open(image_input).convert('RGB') | |
| image_np = np.array(image) | |
| results = reader.readtext(image_np, detail=0, paragraph=True) | |
| # Combine the extracted text into a single string | |
| text = "\n".join(results) | |
| print("Extracted text from image:\n", text) # Debug: Print extracted text | |
| return text | |
| except Exception as e: | |
| return f"Error extracting text from image: {str(e)}" |