d35bb574ef
Nascosti i parametri tecnici (num_features, weak/strong_grad, spread, pyramid) incomprensibili per operatori. Sostituiti da scelte semantiche: - Tipo modello: intero | parziale - Simmetria: nessuna | bilaterale (180) | rotazionale 3/4/6/8x - Variazione scala: fissa | 10% | 25% | 50% - Precisione: veloce 10 | normale 5 | preciso 2 - Score minimo: slider - Max match: input Server: nuovo endpoint POST /match_simple. Deriva tecnici via _simple_to_technical(roi) che analizza la ROI: - weak/strong_grad da percentili - num_features da densita edge x tipo - pyramid_levels da min(h,w) ROI - spread_radius proporzionale Frontend: select + slider, sezione Avanzate collassabile per override. Test rings_and_nuts preset intero/nessuna/medio/normale: 3/3 ruote in 2.14s Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
112 lines
3.2 KiB
HTML
112 lines
3.2 KiB
HTML
<!doctype html>
|
||
<html lang="it">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<title>Pattern Matching 2D</title>
|
||
<link rel="stylesheet" href="/static/style.css">
|
||
</head>
|
||
<body>
|
||
<header>
|
||
<h1>Pattern Matching 2D</h1>
|
||
<div class="toolbar">
|
||
<label class="btn">📂 Modello
|
||
<input type="file" id="file-model" accept="image/*" hidden>
|
||
</label>
|
||
<label class="btn">📂 Scena
|
||
<input type="file" id="file-scene" accept="image/*" hidden>
|
||
</label>
|
||
<button class="btn btn-go" id="btn-match">▶ MATCH</button>
|
||
<span id="status">Carica modello, disegna ROI, carica scena</span>
|
||
</div>
|
||
</header>
|
||
|
||
<main>
|
||
<section class="col" id="col-model">
|
||
<h2>MODELLO</h2>
|
||
<div class="canvas-wrap">
|
||
<canvas id="c-model" width="380" height="420"></canvas>
|
||
</div>
|
||
<div id="roi-info">ROI: (nessuna)</div>
|
||
</section>
|
||
|
||
<section class="col" id="col-scene">
|
||
<h2>SCENA</h2>
|
||
<div class="canvas-wrap">
|
||
<canvas id="c-scene" width="820" height="620"></canvas>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="col" id="col-params">
|
||
<h2>IMPOSTAZIONI</h2>
|
||
|
||
<div class="field">
|
||
<label>Tipo modello</label>
|
||
<select id="p-tipo">
|
||
<option value="intero">Oggetto intero</option>
|
||
<option value="parziale">Parte di oggetto</option>
|
||
</select>
|
||
</div>
|
||
|
||
<div class="field">
|
||
<label>Simmetria</label>
|
||
<select id="p-simmetria">
|
||
<option value="nessuna">Nessuna (0..360°)</option>
|
||
<option value="bilaterale">Bilaterale (speculare 180°)</option>
|
||
<option value="rot_3">Rotazionale 3× (120°)</option>
|
||
<option value="rot_4">Rotazionale 4× (90°)</option>
|
||
<option value="rot_6">Rotazionale 6× (60°)</option>
|
||
<option value="rot_8">Rotazionale 8× (45°)</option>
|
||
</select>
|
||
</div>
|
||
|
||
<div class="field">
|
||
<label>Variazione scala</label>
|
||
<select id="p-scala">
|
||
<option value="fissa">Fissa (setup calibrato)</option>
|
||
<option value="mini">±10%</option>
|
||
<option value="medio">±25%</option>
|
||
<option value="max">±50%</option>
|
||
</select>
|
||
</div>
|
||
|
||
<div class="field">
|
||
<label>Precisione angolare</label>
|
||
<select id="p-precisione">
|
||
<option value="veloce">Veloce (10°)</option>
|
||
<option value="normale" selected>Normale (5°)</option>
|
||
<option value="preciso">Preciso (2°)</option>
|
||
</select>
|
||
</div>
|
||
|
||
<div class="field">
|
||
<label>Score minimo <span id="v-score">0.70</span></label>
|
||
<input type="range" id="p-min-score" min="0.30" max="0.95" step="0.05" value="0.70">
|
||
</div>
|
||
|
||
<div class="field">
|
||
<label>Max match</label>
|
||
<input type="number" id="p-max-matches" value="25" min="1" max="200">
|
||
</div>
|
||
|
||
<details>
|
||
<summary>Avanzate</summary>
|
||
<div id="adv-form"></div>
|
||
</details>
|
||
|
||
<h2 style="margin-top:14px">TEMPI</h2>
|
||
<div class="kv"><span>train:</span><span id="t-train">-</span></div>
|
||
<div class="kv"><span>find:</span><span id="t-find">-</span></div>
|
||
<div class="kv"><span>varianti:</span><span id="t-var">-</span></div>
|
||
<div class="kv"><span>match:</span><span id="t-match">-</span></div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer>
|
||
<h2>LEGENDA</h2>
|
||
<div id="legend"></div>
|
||
</footer>
|
||
|
||
<script src="/static/app.js"></script>
|
||
</body>
|
||
</html>
|