Ayesha352 commited on
Commit
0ffe5fa
·
verified ·
1 Parent(s): b057173

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -2
app.py CHANGED
@@ -88,10 +88,16 @@ def homography_demo(flat_file, persp_file, json_file):
88
 
89
  for method in methods:
90
  kp1, kp2, good_matches = detect_and_match(flat_gray, persp_gray, method=method)
 
 
 
91
  src_pts = np.float32([kp1[m.queryIdx].pt for m in good_matches]).reshape(-1,1,2)
92
  dst_pts = np.float32([kp2[m.trainIdx].pt for m in good_matches]).reshape(-1,1,2)
93
  H, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC, 5.0)
94
 
 
 
 
95
  roi_corners_flat = get_rotated_rect_corners(roi_x, roi_y, roi_w, roi_h, roi_rot_deg)
96
  roi_corners_persp = cv2.perspectiveTransform(roi_corners_flat.reshape(-1,1,2), H).reshape(-1,2)
97
 
@@ -100,7 +106,7 @@ def homography_demo(flat_file, persp_file, json_file):
100
  for (px, py) in roi_corners_persp:
101
  cv2.circle(persp_debug, (int(px), int(py)), 5, (255,0,0), -1)
102
 
103
- outputs.append(cv2.cvtColor(persp_debug, cv2.COLOR_BGR2RGB))
104
 
105
  return outputs
106
 
@@ -111,7 +117,10 @@ with gr.Blocks() as demo:
111
  flat_input = gr.File(label="Upload Flat Image", file_types=[".jpg",".png",".jpeg"])
112
  persp_input = gr.File(label="Upload Perspective Image", file_types=[".jpg",".png",".jpeg"])
113
  json_input = gr.File(label="Upload mockup.json", file_types=[".json"])
114
- output_gallery = gr.Gallery(label="Perspective ROI Results", columns=2, height=400)
 
 
 
115
  run_btn = gr.Button("Run Homography")
116
  run_btn.click(homography_demo, inputs=[flat_input, persp_input, json_input], outputs=output_gallery)
117
 
 
88
 
89
  for method in methods:
90
  kp1, kp2, good_matches = detect_and_match(flat_gray, persp_gray, method=method)
91
+ if kp1 is None or kp2 is None or len(good_matches) < 4:
92
+ continue
93
+
94
  src_pts = np.float32([kp1[m.queryIdx].pt for m in good_matches]).reshape(-1,1,2)
95
  dst_pts = np.float32([kp2[m.trainIdx].pt for m in good_matches]).reshape(-1,1,2)
96
  H, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC, 5.0)
97
 
98
+ if H is None:
99
+ continue
100
+
101
  roi_corners_flat = get_rotated_rect_corners(roi_x, roi_y, roi_w, roi_h, roi_rot_deg)
102
  roi_corners_persp = cv2.perspectiveTransform(roi_corners_flat.reshape(-1,1,2), H).reshape(-1,2)
103
 
 
106
  for (px, py) in roi_corners_persp:
107
  cv2.circle(persp_debug, (int(px), int(py)), 5, (255,0,0), -1)
108
 
109
+ outputs.append((f"{method} Result", cv2.cvtColor(persp_debug, cv2.COLOR_BGR2RGB)))
110
 
111
  return outputs
112
 
 
117
  flat_input = gr.File(label="Upload Flat Image", file_types=[".jpg",".png",".jpeg"])
118
  persp_input = gr.File(label="Upload Perspective Image", file_types=[".jpg",".png",".jpeg"])
119
  json_input = gr.File(label="Upload mockup.json", file_types=[".json"])
120
+ with gr.Row():
121
+ gr.Image(type="filepath", label="Flat Image Preview").style(height=200)
122
+ gr.Image(type="filepath", label="Perspective Image Preview").style(height=200)
123
+ output_gallery = gr.Gallery(label="Perspective ROI Results", show_label=True, columns=2, height=600)
124
  run_btn = gr.Button("Run Homography")
125
  run_btn.click(homography_demo, inputs=[flat_input, persp_input, json_input], outputs=output_gallery)
126