Bikubická interpolace

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 26. listopadu 2018; kontroly vyžadují 16 úprav .

Bikubická interpolace  je rozšířením kubické interpolace ve výpočetní matematice na případ funkce dvou proměnných, jejichž hodnoty jsou uvedeny na dvourozměrné pravidelné mřížce. Plocha vyplývající z bikubické interpolace je hladká funkce na hranicích sousedních čtverců, na rozdíl od ploch vyplývajících z bilineární interpolace nebo interpolace nejbližšího souseda .

Při zpracování obrazu se často používá bikubická interpolace , která poskytuje lepší kvalitu obrazu než bilineární interpolace. Bikubická interpolace se také používá v řídicích algoritmech pro CNC stroje , aby se zohlednily nepravidelnosti povrchu, například při frézování desek plošných spojů.

Princip metody

V případě bikubické interpolace se hodnota funkce v požadovaném bodě vypočítá prostřednictvím jejích hodnot v 16 sousedních bodech umístěných ve vrcholech čtverců roviny .

Při použití níže uvedených vzorců k programové implementaci bikubické interpolace nezapomeňte, že hodnoty a jsou relativní, nikoli absolutní. Například pro bod se souřadnicemi . Pro získání relativních hodnot souřadnic je nutné zaokrouhlit skutečné souřadnice dolů a získaná čísla odečíst od skutečných souřadnic.

,

kde

, , , , , , , , , , , , , , , ,

Podobným způsobem lze použít interpolace vyššího řádu, které počítají hodnoty funkce ze sousedních bodů.

Bikubická spline interpolace

Předpokládejme, že je nutné interpolovat hodnotu funkce v bodě ležícím uvnitř čtverce a hodnotu funkce známe v šestnácti sousedních bodech .

Potom lze obecný tvar funkce, která definuje interpolovanou plochu, zapsat následovně:

.

Pro nalezení koeficientů je nutné dosadit hodnoty funkce ve známých šestnácti bodech do výše uvedené rovnice. Například:

.

Kompletně v maticové podobě:

,

kde

,

,

.

Při řešení výsledného systému lineárních algebraických rovnic můžete explicitně najít hodnoty:

.

Jednou nalezené koeficienty lze nyní použít k opakovanému výpočtu interpolované hodnoty funkce v libovolných bodech čtverce .

Nutno podotknout, že tato metoda zajišťuje návaznost samotné funkce a její druhé derivace na hranicích sousedních čtverců, ale vede k přerušení prvních derivací na hranicích 4×4 buněk. Pro zajištění kontinuity samotné funkce a její první derivace je nutné dosadit hodnoty funkce a hodnoty prvních derivací ve směru x a y ve vrcholech centrální buňky do původní derivace jsou vypočteny prostřednictvím centrálních rozdílů. Chcete-li dosadit deriváty, musí být výraz odpovídajícím způsobem diferencován.

Sekvenční kubická interpolace

Další výklad metody spočívá v tom, že pro nalezení interpolované hodnoty je možné nejprve provést kubickou interpolaci v jednom a poté ve druhém směru.

Pro funkci se známými hodnotami , , , můžete sestavit kubický spline: , nebo ve formě matice:

,

kde

,

.

Chcete-li tedy najít interpolovanou hodnotu ve čtverci , můžete nejprve vypočítat čtyři hodnoty , , , pro pevné , poté sestavit kubický spline ze čtyř získaných bodů, a tím dokončit výpočet :

.

Je třeba poznamenat, že tento přístup zajišťuje kontinuitu funkce samotné a jejích druhých derivací na hranici buňky, ale nezajišťuje návaznost první derivace. Aby byla zajištěna kontinuita první derivace, je nutné dosadit hodnoty funkce a jejích prvních derivací na hranici centrální buňky. Spline koeficienty pak budou vypadat takto:

,

.

Viz také

Literatura