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ů.
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ů.
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.
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:
,
.