Files
Shape_Model_2D/pm2d/web/static/index.html
T
Adriano 45e3a29ff0 feat: simmetria 'invariante' per oggetti circolari (1 variante angolare)
Test tooth_rim foro grande: 12x piu veloce (0.14s vs 1.77s) perche
angle_max=0 genera 1 sola variante angolare invece di 72.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 10:02:32 +02:00

115 lines
3.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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="invariante">Invariante (cerchi — no rotazione)</option>
<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.65</span>
<span class="hint">(più basso = più match anche incerti)</span>
</label>
<input type="range" id="p-min-score" min="0.30" max="0.95" step="0.05" value="0.65">
</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>