Spaces:
Runtime error
Runtime error
| import cv2 | |
| import numpy as np | |
| def estimate_severity(image_path: str) -> dict: | |
| img = cv2.imread(image_path) | |
| if img is None: | |
| return {"percentage": 0, "label": "Unknown"} | |
| hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) | |
| # Healthy green tissue | |
| green_mask = cv2.inRange(hsv, | |
| np.array([35, 40, 40]), | |
| np.array([85, 255, 255])) | |
| # Diseased tissue (brown/yellow spots) | |
| diseased_mask = cv2.inRange(hsv, | |
| np.array([10, 50, 50]), | |
| np.array([35, 255, 200])) | |
| total = cv2.countNonZero(green_mask) + cv2.countNonZero(diseased_mask) | |
| infected = cv2.countNonZero(diseased_mask) | |
| if total == 0: | |
| return {"percentage": 0, "label": "Unknown"} | |
| pct = (infected / total) * 100 | |
| if pct < 20: label = "Mild" | |
| elif pct < 50: label = "Moderate" | |
| else: label = "Severe" | |
| return {"percentage": round(pct, 1), "label": label} |