HaanIlango commited on
Commit
3a520fc
·
verified ·
1 Parent(s): b08811a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -10
app.py CHANGED
@@ -469,27 +469,33 @@ def export_pdf(heatmap_img, chart_img, summary_md):
469
  return pdf_path
470
 
471
 
472
- def draw_scan_path(overlay_bgr, zones):
473
  img = overlay_bgr.copy()
 
 
 
474
  ordered = sorted(zones, key=lambda z: z["intensity_rank"])
475
  for i in range(len(ordered) - 1):
476
  pt1 = (ordered[i]["cx"], ordered[i]["cy"])
477
  pt2 = (ordered[i + 1]["cx"], ordered[i + 1]["cy"])
478
- cv2.arrowedLine(img, pt1, pt2, (0, 0, 0), 8, tipLength=0.08, line_type=cv2.LINE_AA)
479
- cv2.arrowedLine(img, pt1, pt2, (0, 255, 255), 4, tipLength=0.08, line_type=cv2.LINE_AA)
480
  return img
481
 
482
 
483
- def draw_zone_labels(overlay_bgr, zones):
484
  img = overlay_bgr.copy()
 
 
 
 
485
  for i, z in enumerate(zones, 1):
486
  cx, cy = z["cx"], z["cy"]
487
- radius = 22
488
  cv2.circle(img, (cx, cy), radius, (255, 255, 255), -1)
489
- cv2.circle(img, (cx, cy), radius, (0, 0, 0), 3)
490
  text = str(i)
491
- (tw, th), _ = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, 0.9, 3)
492
- cv2.putText(img, text, (cx - tw // 2, cy + th // 2), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 0, 0), 3, cv2.LINE_AA)
493
  return img
494
 
495
 
@@ -512,8 +518,8 @@ def analyze(pil_image, overlay_strength):
512
  tips = generate_recommendations(saliency_map, scores, read, h, w)
513
  chart_image = create_score_chart(scores['focus_score'], scores['spread_score'], readability_score)
514
 
515
- overlay_bgr = draw_scan_path(overlay_bgr, zones)
516
- overlay_bgr = draw_zone_labels(overlay_bgr, zones)
517
  overlay_bgr = draw_issue_markers(overlay_bgr, read.get("issue_boxes", []))
518
  overlay_rgb = cv2.cvtColor(overlay_bgr, cv2.COLOR_BGR2RGB)
519
 
 
469
  return pdf_path
470
 
471
 
472
+ def draw_scan_path(overlay_bgr, zones, img_h, img_w):
473
  img = overlay_bgr.copy()
474
+ scale = max(1.0, min(img_h, img_w) / 800.0)
475
+ outer_thickness = int(8 * scale)
476
+ inner_thickness = int(4 * scale)
477
  ordered = sorted(zones, key=lambda z: z["intensity_rank"])
478
  for i in range(len(ordered) - 1):
479
  pt1 = (ordered[i]["cx"], ordered[i]["cy"])
480
  pt2 = (ordered[i + 1]["cx"], ordered[i + 1]["cy"])
481
+ cv2.arrowedLine(img, pt1, pt2, (0, 0, 0), outer_thickness, tipLength=0.08, line_type=cv2.LINE_AA)
482
+ cv2.arrowedLine(img, pt1, pt2, (0, 255, 255), inner_thickness, tipLength=0.08, line_type=cv2.LINE_AA)
483
  return img
484
 
485
 
486
+ def draw_zone_labels(overlay_bgr, zones, img_h, img_w):
487
  img = overlay_bgr.copy()
488
+ scale = max(1.0, min(img_h, img_w) / 800.0)
489
+ radius = int(22 * scale)
490
+ font_scale = 0.9 * scale
491
+ thickness = max(2, int(3 * scale))
492
  for i, z in enumerate(zones, 1):
493
  cx, cy = z["cx"], z["cy"]
 
494
  cv2.circle(img, (cx, cy), radius, (255, 255, 255), -1)
495
+ cv2.circle(img, (cx, cy), radius, (0, 0, 0), thickness)
496
  text = str(i)
497
+ (tw, th), _ = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, font_scale, thickness)
498
+ cv2.putText(img, text, (cx - tw // 2, cy + th // 2), cv2.FONT_HERSHEY_SIMPLEX, font_scale, (0, 0, 0), thickness, cv2.LINE_AA)
499
  return img
500
 
501
 
 
518
  tips = generate_recommendations(saliency_map, scores, read, h, w)
519
  chart_image = create_score_chart(scores['focus_score'], scores['spread_score'], readability_score)
520
 
521
+ overlay_bgr = draw_scan_path(overlay_bgr, zones, h, w)
522
+ overlay_bgr = draw_zone_labels(overlay_bgr, zones, h, w)
523
  overlay_bgr = draw_issue_markers(overlay_bgr, read.get("issue_boxes", []))
524
  overlay_rgb = cv2.cvtColor(overlay_bgr, cv2.COLOR_BGR2RGB)
525