Grafika

Houghova transformace

Vydáno:

Jiří Kupka

Pokud v obrazech potřebujeme detekovat jednoduché geometrické tvary - najčastěji přímky či kružnice (můžeme však chtít detekovat klidně i jinou křivku), nejspíš sáhneme po Houghově transformaci, u které využíváme znalosti rovnice hledaného útvaru. Mějme například rovnici přímky ve směrnicovém tvaru:

Python implementace - Sliding window

Vydáno:

Jiří Kupka

Častou úlohou ve zpracování a analýze obrazu je detekce zájmových objektů na fotografii (snažíme se najít místo, kde leží obličej, zjistit, zda se na fotografii nachází motorka atd.), což je většinou obtížné zařídit tak, že detektoru předložíme celý obraz najednou. Často si volíme nějaké okénko, výřez aktuální fotografie, a zkoumáme, jestli se hledaný objekt nenachází právě v tomto okénku. Při inicializaci si zvolíme minimální velikost okénka a to posouváme s definovaným krokem od levého horního rohu fotografie až k pravému dolnímu.

Rovnice Bézierovy křivky

Vydáno:

Jiří Kupka

Bézierova křivka bývá v počítačové grafice hlavní metodou modelování křivek. Využívá se v nástrojích pro 3D modelování, vektorové grafice, při tvorbě fontů apod. Její hlavní přednost spočívá v intuitivní úpravě, kdy pouhým přesunutím řídících bodů můžeme vymodelovat křivku takovou, jak potřebujeme. Na podobném principu funguje také Fergusonova křivka, která je v případě Fergusonovy kubiky zadána dvěma body a dvěma tečnými vektory. Bézierova a Fergusonova křivka jsou navzájem snadno převoditelné.

Aproximace křivky metodou nejmenších čtverců

Vydáno:

Jiří Kupka

Pokud máme zadáno n kontrolních bodů, nemůžeme křivku interpolovat polynomem nižšího, než n-1 stupně (za předpokladu, že na dané křivce nižšího stupně neleží všechny body). Takovou křivku můžeme však aproximovat křivkou nižšího stupně. Například metodou nejmenších čtverců. Toto řešení se snaží minimalizovat součet čtverců odchylek oproti původní křivce.



Zdroj obrázku: http://www.eistat.cz/

Tipy pro lepší výkon HTML5 canvasu

Vydáno:

Jiří Kupka
  • Není potřeba vykreslovat objekty, které se zobrazují mimo canvas. Objekty jdou vykreslit i za hranice rozměrů canvasu, uživatel je však nevidí. Toto počítání zbytečně zvyšuje počet operací nad canvasem bez viditelných výsledků. Při zjištění, že by se objekt vykreslil mimo canvas, nevykreslovat.