CurveFinder QT
CurveFinder je specializovaný nástroj pro detekci a analýzu interpolačních křivek (ISP curves, Bézierovy křivky, spline křivky) z digitálních obrázků.
Co projekt řeší
CurveFinder je specializovaný nástroj pro detekci a analýzu interpolačních křivek (ISP curves, Bézierovy křivky, spline křivky) z digitálních obrázků.
Typické použití
- RYCHLÁ KONTROLA JEDNOHO OBRÁZKU
Jak aplikace funguje a k čemu slouží
Přehled a use-case
CurveFinder_QT je specializovaný desktop nástroj pro detekci křivek z rastrových obrázků, jejich matematické zpracování a export do prakticky použitelných výstupů (overlay, PNG ikony, SVG vektory, databázové záznamy). V kontextu MFilmDB toolchainu slouží jako analyzátor vizuálních křivek s důrazem na reprodukovatelnost výsledků a provozní použitelnost jak v grafické rozhraní, tak v headless dávkách.
- Primární use-case: extrakce ISP/Bézier/spline křivek z obrázků a jejich další využití.
- Sekundární use-case: standardizovaný export ikon (1:1 crop, 256×256 PNG) a SVG cest.
- Provozní use-case: dávkové zpracování adresářů/souborů bez grafické rozhraní (CI/QA pipelines).
- Auditní use-case: ukládání metadat a výsledků do SQLite + logy po relacích.
Workflow krok za krokem
6.1 Interaktivní workflow (grafické rozhraní)
- Open image (File/Open nebo toolbar tlačítko).
- Náhled + zoom/pan pro přesné umístění oblasti zájmu.
- Volitelné nastavení crop masky (1:1) pro ikonový export.
- Spuštění detekce křivek (Detect).
- Kontrola overlay výsledku a případné doladění parametrů.
- Uložení do DB (pokud je aktivní save workflow).
- Export vybraného/aktuálního výsledku do PNG/SVG.
6.2 Dávkový workflow (headless)
- Zvolit režim: --batch-test / --batch-dir / --batch-file.
- Nastavit output cestu (--batch-out).
- Spustit proces a sledovat progress/log output.
- Po dokončení ověřit exportní artefakty a QA reporty.
Uživatelské scénáře
Scénář A — Ruční analýza jednoho obrázku
Operátor otevře zdrojový obrázek, nastaví vhodný zoom a zkontroluje oblast s největší hustotou křivek. Po detekci porovná overlay s originálem a exportuje nejreprezentativnější výřezy do PNG/SVG.
Scénář B — Batch verifikace testovací sady
Pro regresní kontrolu se spustí dávka nad test_images a výstup se vyhodnotí podle počtu detekovaných křivek, kvality overlay a konzistence exportovaných vektorů.
Scénář C — Tvorba ikony z konkrétní části grafu
Uživatel přesune 1:1 masku na cílovou část obrázku, provede export PNG 256×256 a současně uloží SVG reprezentaci stejné oblasti pro další editorový workflow.
Scénář D — Headless single-file pipeline
Automatizovaný skript předá jeden soubor přes --batch-file bez kopírování a použije výstupy v navazujícím nástroji pro QA nebo publikaci.
UI mapa a ovládání
8.1 Hlavní prvky
- Menu bar: File, Actions, Settings, Help (dle buildu).
- Toolbar: open, detect, export, settings, show logs, další utility akce.
- Central image area: render obrazu + overlay.
- Interaktivní navigace: mouse-wheel zoom, pan drag, crop mask operace.
8.2 UX pravidla
- Zoom je center-aware (okolo kurzoru).
- Pan nemění datový obsah, jen viewport.
- Crop mask je určená pro standardní ikonový výstup.
- Show logs akce otevírá session log folder pro rychlou diagnostiku.
I/O, DB, formáty
10.1 Vstupy
- Rastrové obrázky (JPG, PNG, BMP, TIFF a další běžné formáty).
- Batch vstupy z adresářové struktury nebo single souboru.
10.2 Výstupy
- Overlay obrázky s vyznačenou detekcí.
- PNG exporty (včetně ikonových výřezů).
- SVG exporty (vektorová reprezentace křivek).
- SQLite záznamy metadat a hash identit.
10.3 Databázová vrstva
DB je SQLite based a cílí na lehkou přenositelnost. Typické využití je uložení curve metadata, export payload referencí, presetů a auditních informací o běhu.
Troubleshooting
| Symptom | Možná příčina | Řešení |
|---|---|---|
| Detekce běží příliš dlouho | velký/šumový obraz, vysoká iterace | uprav detect parametry, nastav skeleton_max_iter |
| Žádné nebo chudé křivky | nevhodný threshold/předzpracování | změnit vstupní parametry, ověřit kontrast |
| SVG export prázdný | křivka nebyla validně rekonstruována | ověřit body a filtrační kroky před exportem |
| DB write fail | neplatná cesta nebo práva | zkontrolovat db_path a oprávnění adresáře |
| Lokalizace nesedí | chybějící localize payload | zapnout/ověřit fallback, validovat .localize syntax |
| grafické rozhraní lag při velkých obrázcích | náročné render + overlay | pracovat po výřezech, omezit paralelní akce |
| Batch výstup neúplný | chybné input cesty/filtry | ověřit --batch-dir/--batch-file a output log |
| Show logs nic neotevře | path resolver nebo shell asociace | otevřít logs adresář ručně a zkontrolovat path |
FAQ
| Otázka | Odpověď |
|---|---|
| Je možné měnit velikost crop masky? | MVP workflow cílí na standardní 1:1 ikonový výřez; další režimy mohou být doplněny později. |
| Podporuje aplikace čistě headless režim? | Ano, přes batch argumenty bez nutnosti interaktivního grafické rozhraní toku. |
| Kde jsou logy? | V app-local složce logs s názvem CurveFinder_YYYYMMDD_HHMMSS.log. |
| Jak ověřit kvalitu detekce? | Porovnáním overlay proti originálu a kontrolou SVG/PNG výstupů. |
| Lze aplikaci používat bez SQLite? | Exportně ano, ale DB persistence a některé metadata workflow vyžadují db_path. |
| Jak zabránit zacyklení skeletonizace? | Nastavit skeleton_max_iter a sledovat heartbeat logy. |
| Proč jsou některé křivky ignorovány? | Filtrace může odstranit přímky/šum nebo nevalidní kontury. |
| Je možné použít vlastní localize soubor? | Ano, přes APP_DATA/curvefinder.localize s fallback podporou. |
| Má appka nějaký bezpečný výchozí profil? | Ano, default config je navržen konzervativně pro stabilní start. |
| Kdy spouštět batch-test? | Při změně detekční logiky, export pipeline nebo před release bundlem. |
