Spaces:
Sleeping
Sleeping
Update main.py
Browse files
main.py
CHANGED
|
@@ -292,9 +292,18 @@ class WatermelonProcessor:
|
|
| 292 |
height_px = float(np.max(fit_pts[:, 1]) - np.min(fit_pts[:, 1]))
|
| 293 |
perimeter_px = float(np.sum(np.linalg.norm(np.diff(fit_pts, axis=0), axis=1)) + np.linalg.norm(fit_pts[-1] - fit_pts[0]))
|
| 294 |
|
| 295 |
-
|
| 296 |
-
|
| 297 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 298 |
|
| 299 |
# --- 4. DRAWING ---
|
| 300 |
midline = self.get_dual_mask_midline(flesh_l_m, flesh_r_m, rind_cnt, fit_pts, cx, cy)
|
|
|
|
| 292 |
height_px = float(np.max(fit_pts[:, 1]) - np.min(fit_pts[:, 1]))
|
| 293 |
perimeter_px = float(np.sum(np.linalg.norm(np.diff(fit_pts, axis=0), axis=1)) + np.linalg.norm(fit_pts[-1] - fit_pts[0]))
|
| 294 |
|
| 295 |
+
if cm_per_px is not None:
|
| 296 |
+
# Both checker and watermelon were measured on the scaled image.
|
| 297 |
+
# cm_per_px natively accounts for the scaling, no orig_scale needed!
|
| 298 |
+
width_val = float(width_px * cm_per_px)
|
| 299 |
+
height_val = float(height_px * cm_per_px)
|
| 300 |
+
perimeter_val = float(perimeter_px * cm_per_px)
|
| 301 |
+
else:
|
| 302 |
+
# Fallback to true original pixels
|
| 303 |
+
orig_scale = 1.0 / scale_ratio
|
| 304 |
+
width_val = float(width_px * orig_scale)
|
| 305 |
+
height_val = float(height_px * orig_scale)
|
| 306 |
+
perimeter_val = float(perimeter_px * orig_scale)
|
| 307 |
|
| 308 |
# --- 4. DRAWING ---
|
| 309 |
midline = self.get_dual_mask_midline(flesh_l_m, flesh_r_m, rind_cnt, fit_pts, cx, cy)
|