fix: refine angolo piu' veloce + edge overlay ciano (no clash con asse Y)
Bug visibili dallo screenshot: 1. Rallentamento sostanziale: il fix precedente aggiungeva 16 iter golden (era 8) + 3 chiamate parabolic fit = ~19 _score_at_angle vs 11 prima. 2. Asse Y dell'UCS invisibile sul match: edge overlay era verde brillante (0,220,0) e si sovrapponeva esattamente al verde dell'asse Y dell'UCS. 3. Angolo non corretto: il parabolic fit finale era instabile su template simmetrici (multiple local max ravvicinati lo facevano divergere fuori dal vero picco trovato dal golden). Fix: - _refine_angle: 10 iter golden con tol 0.05 (compromesso tra precisione e velocita'). Rimosso parabolic fit finale instabile. search_radius resta a step pieno (utile per recuperare estremi del bin). - Edge overlay color: ciano (BGR 255,200,0) invece di verde brillante. L'asse Y verde dell'UCS ora ben visibile sopra l'overlay. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+3
-1
@@ -194,7 +194,9 @@ def _draw_matches(scene: np.ndarray, matches: list[Match],
|
||||
edge_mask = edge_mask & (warped_mask > 0)
|
||||
if edge_mask.any():
|
||||
edge_overlay = np.zeros_like(out)
|
||||
edge_overlay[edge_mask] = (0, 220, 0) # verde brillante
|
||||
# Ciano (cambiato da verde): non collide col verde dell'asse
|
||||
# Y dell'UCS che altrimenti scompariva nell'overlay edge.
|
||||
edge_overlay[edge_mask] = (255, 200, 0) # ciano (BGR)
|
||||
out = cv2.addWeighted(out, 1.0, edge_overlay, 0.6, 0)
|
||||
L = max(20, int(L_base * m.scale))
|
||||
# X axis = rotazione di (1, 0) con cv2 matrix → (cos, -sin)
|
||||
|
||||
Reference in New Issue
Block a user