Spaces:
Build error
Build error
| import cv2 | |
| import pytesseract | |
| import numpy as np | |
| # Save the image for debugging purposes | |
| def save_debug_image(image, filename): | |
| cv2.imwrite(filename, image) | |
| # Preprocess the image for segmentation | |
| def preprocess_image_for_segmentation(img): | |
| # Convert to grayscale | |
| gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) | |
| # Enhance contrast using CLAHE (Contrast Limited Adaptive Histogram Equalization) | |
| clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8)) | |
| enhanced_img = clahe.apply(gray_img) | |
| # Apply adaptive thresholding to create a binary image | |
| _, binary_img = cv2.threshold(enhanced_img, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) | |
| return binary_img | |
| # Extract text from the OCR image (directly from an image object, no paths) | |
| def extract_text_from_image(img): | |
| # Optionally resize the image for better OCR accuracy | |
| img = cv2.resize(img, None, fx=2, fy=2, interpolation=cv2.INTER_CUBIC) | |
| # Preprocess image | |
| preprocessed_img = preprocess_image_for_segmentation(img) | |
| # Save the preprocessed image for debugging | |
| save_debug_image(preprocessed_img, "full_preprocessed_image.jpg") | |
| # Run OCR on the full preprocessed image (no block segmentation) | |
| extracted_text = pytesseract.image_to_string(preprocessed_img, lang='eng+hin') | |
| return extracted_text | |