Články

Vývoj software v roce 2018

Vydáno:

Jiří Kupka

Vývoj software se neustále mění podle toho, jaké technologie jsou aktuálně v kurzu, jak jsou dostupné a jaká metodika se osvědčila. Určitě nebudu sám, kdo vzpomene na kódění v PSPadu a nasazování do produkce přes Total Commander a FTP, které fungovalo, jak se mu chtělo a pokud jste měli štěstí. A jak to vypadá v roce 2018?

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:

Perceptron a Hebbovo učící pravidlo

Vydáno:

Jiří Kupka

Perceptron je nejjednodušším modelem neuronových sítí. V tomto článku budu psát pouze o nejjednodušší variantě této sítě - jednom perceptronu, který pracuje s aktivační funkcí $\text{sgn}$ (signum, skoková funkce, hardlim, heaviside).

Achilles a želva

Vydáno:

Jiří Kupka

Asi není slavnějšího paradoxu, než je tento Zenonův. Běžec Achilles závodí s želvou. Achilles je 10x rychlejší, než želva. Nechá jí tedy 10 metrů náskok a potom vyběhne za ní. Jenže, v době, kdy se dostane Achilles do místa 10 metrů, želva uběhne další metr. Když Achilles uběhne další metr, aby ji doběhl, želva je už zase o 10 centrimetrů před ním. Náskok želvy se bude pořád zmenšovat, ale doběhne ji někdy Achilles?

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.

Derivace

Vydáno:

Jiří Kupka

Derivace je jeden ze základních pojmů diferenciálního počtu a můj oblíbený matematický aparát. Díky ní můžeme vyšetřit průběh funkce a na základě této znalosti například určit v jakém úhlu leží tečna v daném bodě, jak rychle se v daném bodě funkce mění nebo kde je její nejnižší či nejvyšší bod. A k čemu jsou tyto znalosti dobré v každodenním životě? Představme si, že chceme vytvořit počítačovou hru a máme funkci, která nám představuje dráhu autíčka na mapě. Tato funkce má tvar:

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/

Drupal development: Vlastní políčka v typech obsahu #1

Vydáno:

Jiří Kupka

Tento článek pojednává o vytvoření "statického políčka", tj. políčka, které je přiřazeno automaticky k typu obsahu programově (Title, URL path settings, ...) a není možné ho přidat ve smyslu "vlastní políčko určitého datového typu" (Obrázky, Soubory, DateField, ...). O definování vlastního typu pole bude pojednávat připravovaný článek Vlastní políčka v typech obsahu #2.

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.

Pages