技能备份 - 2026-04-15 (40个技能)
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test script for Super OCR multi-engine parallel support
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Add parent to path
|
||||
sys.path.insert(0, str(os.path.dirname(os.path.abspath(__file__))))
|
||||
|
||||
print("Testing Super OCR multi-engine parallel imports...")
|
||||
|
||||
try:
|
||||
from engine.selector import select_engine, get_available_engines, select_best_result
|
||||
print("[OK] engine.selector imported")
|
||||
except Exception as e:
|
||||
print(f"[ERROR] engine.selector import failed: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
from engine.tesseract import TesseractOCR
|
||||
print("[OK] engine.tesseract imported")
|
||||
except Exception as e:
|
||||
print(f"[ERROR] engine.tesseract import failed: {e}")
|
||||
|
||||
try:
|
||||
from engine.paddle import PaddleOCR
|
||||
print("[OK] engine.paddle imported")
|
||||
except Exception as e:
|
||||
print(f"[ERROR] engine.paddle import failed: {e}")
|
||||
|
||||
# Test MacVision on macOS
|
||||
if sys.platform == 'darwin':
|
||||
try:
|
||||
from engine.macvision import MacVisionOCR
|
||||
print("[OK] engine.macvision imported")
|
||||
except (ImportError, RuntimeError) as e:
|
||||
print(f"[WARN] engine.macvision: {e}")
|
||||
else:
|
||||
print("[SKIP] engine.macvision (not on macOS)")
|
||||
|
||||
print("\nTesting engine selector...")
|
||||
|
||||
# Test available engines
|
||||
print(f"[INFO] Available engines: {', '.join(get_available_engines('test.png'))}")
|
||||
|
||||
test_cases = [
|
||||
('screenshot.png', 'auto', ['tesseract']),
|
||||
('chinese_menu.png', 'auto', None), # All engines
|
||||
('invoice.jpg', 'auto', None), # All engines
|
||||
('document.png', 'tesseract', ['tesseract']),
|
||||
]
|
||||
|
||||
for image, engine, expected in test_cases:
|
||||
result = select_engine(image, engine)
|
||||
if expected:
|
||||
status = "OK" if result == expected else "FAIL"
|
||||
print(f"[{status}] {image} + {engine} => {result} (expected {expected})")
|
||||
else:
|
||||
print(f"[OK] {image} + {engine} => {result}")
|
||||
|
||||
# Test best result selection
|
||||
print("\nTesting best result selection...")
|
||||
test_results = [
|
||||
{'text': 'test1', 'confidence': 0.85, 'engine': 'tesseract'},
|
||||
{'text': 'test2', 'confidence': 0.92, 'engine': 'paddle'},
|
||||
{'text': 'test3', 'confidence': 0.95, 'engine': 'macvision'},
|
||||
]
|
||||
|
||||
best = select_best_result(test_results)
|
||||
print(f"[OK] Selected: {best.get('selected_engine')} with score {best.get('score', 0):.4f}")
|
||||
|
||||
print("\n[OK] All imports successful!")
|
||||
Reference in New Issue
Block a user