doc_preprocess_result.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. """文档预处理结果"""
  2. from dataclasses import dataclass, field
  3. from typing import Optional, Dict
  4. import numpy as np
  5. @dataclass
  6. class DocPreprocessResult:
  7. """文档预处理结果"""
  8. input_path: Optional[str] = None
  9. original_shape: tuple = field(default_factory=tuple)
  10. processed_shape: tuple = field(default_factory=tuple)
  11. processed_image: Optional[np.ndarray] = None
  12. # 旋转相关
  13. rotation_angle: str = "0"
  14. rotation_confidence: float = 1.0
  15. rotated: bool = False
  16. vertical_text_count: int = 0
  17. # 调试信息
  18. debug_info: Optional[Dict] = None
  19. def __str__(self):
  20. lines = [
  21. f"DocPreprocessResult:",
  22. f" Original shape: {self.original_shape}",
  23. f" Rotation: {self.rotation_angle}° (confidence: {self.rotation_confidence:.3f})",
  24. f" Vertical texts: {self.vertical_text_count}",
  25. f" Rotated: {self.rotated}"
  26. ]
  27. if self.debug_info:
  28. lines.append(" Debug info:")
  29. for key, value in self.debug_info.items():
  30. lines.append(f" {key}: {value}")
  31. return "\n".join(lines)