| import os
|
| import sys
|
| import json
|
| import cv2
|
| import numpy as np
|
| from PIL import Image
|
|
|
|
|
| PROJECT_ROOT = r"c:\Users\Varshith Dharmaj\Downloads\major\math_verification_mvp"
|
| if PROJECT_ROOT not in sys.path:
|
| sys.path.insert(0, PROJECT_ROOT)
|
|
|
| local_ocr_path = os.path.join(PROJECT_ROOT, "services", "local_ocr")
|
| if local_ocr_path not in sys.path:
|
| sys.path.append(local_ocr_path)
|
|
|
| from mvm2_ocr_engine import MVM2OCREngine
|
|
|
| def run_diagnostics():
|
| print("MVM2 OCR DIAGNOSTIC TOOL")
|
| print("========================")
|
|
|
| engine = MVM2OCREngine()
|
| print(f"Engine Model Loaded: {engine.model_loaded}")
|
|
|
| test_images = [
|
| "test_math.png",
|
| "services/dashboard/test_math.png"
|
| ]
|
|
|
|
|
| synth_path = "synth_math.png"
|
| img = Image.new('RGB', (800, 200), color = 'white')
|
|
|
|
|
| synth_img = np.ones((200, 800, 3), dtype=np.uint8) * 255
|
| cv2.putText(synth_img, "f(x) = x^2 + 2x + 1", (50, 100), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 0), 3)
|
| cv2.imwrite(synth_path, synth_img)
|
| test_images.append(synth_path)
|
|
|
| from services.preprocessing_service.image_enhancing import ImageEnhancer
|
| enhancer = ImageEnhancer(sigma=1.2)
|
|
|
| for img_path in test_images:
|
| abs_path = os.path.abspath(img_path)
|
| if not os.path.exists(abs_path):
|
| print(f"\n[SKIP] {img_path} not found.")
|
| continue
|
|
|
| print(f"\n[TESTING RAW] {img_path}")
|
| result_raw = engine.process_image(abs_path)
|
| print(f"Raw Result: {result_raw.get('latex_output')}")
|
|
|
| print(f"\n[TESTING ENHANCED] {img_path}")
|
| try:
|
| enhanced_img, _ = enhancer.enhance(abs_path)
|
| enhanced_tmp = f"enhanced_{os.path.basename(img_path)}"
|
| cv2.imwrite(enhanced_tmp, enhanced_img)
|
| result_enh = engine.process_image(enhanced_tmp)
|
| print(f"Enhanced Result: {result_enh.get('latex_output')}")
|
| os.remove(enhanced_tmp)
|
| except Exception as e:
|
| print(f"Enhancement failed: {e}")
|
|
|
| if __name__ == "__main__":
|
| run_diagnostics()
|
|
|