crabbly commited on
Commit
e53b4dd
·
verified ·
1 Parent(s): e1e390a

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +12 -3
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
- width_val = float(width_px * cm_per_px * orig_scale)
296
- height_val = float(height_px * cm_per_px * orig_scale)
297
- perimeter_val = float(perimeter_px * cm_per_px * orig_scale)
 
 
 
 
 
 
 
 
 
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)