from typing import Dict from core.config import settings def classify_defect(area: float, length: float, area_ratio: float) -> Dict[str, str]: """ Classify defect severity based on geometric features. Args: area: Pixel area of defect length: Contour length of defect area_ratio: Area relative to image Returns: Dictionary with severity and decision """ # Thresholds (move to config later if needed) CRITICAL_AREA_RATIO = 0.01 CRITICAL_LENGTH = 180 MODERATE_AREA_RATIO = 0.003 MODERATE_LENGTH = 60 # Critical defects if area_ratio > CRITICAL_AREA_RATIO or length > CRITICAL_LENGTH: severity = "Critical" decision = "FAIL" # Moderate defects elif area_ratio > MODERATE_AREA_RATIO or length > MODERATE_LENGTH: severity = "Moderate" decision = "REVIEW" # Minor defects else: severity = "Minor" decision = "PASS" return { "severity": severity, "decision": decision }