Interpolacja (grafika komputerowa)

Interpolacja – proces mający na celu utworzenie nowego, wcześniej nieistniejącego piksela na podstawie sąsiadujących pikseli w taki sposób, aby był on jak najlepiej dopasowany optycznie do transformowanego obrazu.

Interpolację wykorzystuje się przy resamplingu używanym m.in. do przeskalowywania grafiki rastrowej, uzupełnianiu i korygowaniu obrazów w programach graficznych oraz automatycznej korekcie obrazów w skanerach do filmów. Ponieważ obraz bitmapowy swoją strukturą przypomina szachownicę lub papier milimetrowy, to wszelkie operacje polegające na obracaniu bitmapy o kąt inny niż wielokrotność 90° odbywają się również na drodze interpolacji.

Rodzaje

Istnieją cztery główne sposoby interpolacji obrazów cyfrowych:

  • Interpolacja metodą „najbliższego sąsiada” (ang. nearest neighbor) – metoda najprostsza, w której przy skalowaniu odbywa się wierne kopiowanie najbliższego piksela. W przypadku powiększania innego niż o wielokrotność 100% jest to statystyczne kopiowanie odpowiednich pikseli; przy pomniejszaniu jest to automatyczne pomijanie niektórych pikseli. Metoda wymagająca od komputera najmniejszej mocy obliczeniowej, jednak jest rzadko stosowana, ponieważ w przypadku dużych powiększeń wyraźnie widać grupy identycznych pikseli, a granice pomiędzy nimi są wyraźne, ostre, nie rozmyte. Metoda wystarczająca przy obrabianiu zrzutów z ekranu monitora, np. okien dialogowych, przycisków itp. Można jej także użyć do najbardziej kontrastowych obrazów oraz obrazów o motywach wyraźnie ułożonych na siatce. Decyzję należy podjąć drogą eksperymentu – wszystko zależy od oczekiwanych rezultatów. Jest to jedyna metoda interpolacji nie powodująca rozmycia kształtów – owo rozmycie jest jednak najczęściej potrzebne dla zachowania naturalnego wyglądu obrazu.
  • Interpolacja dwuliniowa (ang. bilinear) – metoda pośrednia, niewiele mocniej obciążająca komputer, ale i dająca lepszy, łagodniejszy dla oczu obraz. Piksele są powielane lub redukowane z uwzględnieniem kolorów czterech sąsiednich pikseli, stykających się bokami z danym pikselem.
  • Interpolacja dwusześcienna (ang. bicubic) – dająca znacznie lepsze wyniki końcowe, aktualnie opcja domyślna w większości programów przetwarzających obrazy i gier komputerowych. Krawędzie są naturalnie, łagodnie rozmyte, a obraz po transformacji bardzo wiarygodnie przypomina obraz początkowy. Do skalowania obrazu metoda wykorzystuje kolory wszystkich ośmiu pikseli stykających się bokami lub wierzchołkami z danym pikselem.
  • Interpolacja algorytmem Lanczosa – uwzględnia sąsiadujące punkty w kwadratach 4×4, 6×6 lub 8×8. W pierwszym przypadku algorytm daje zbliżone wyniki do interpolacji dwusześciennej, w pozostałych otrzymywane rezultaty są widocznie lepsze, ale czas wykonywania obliczeń jest znacząco dłuższy, dlatego praktycznie nie wykorzystuje się jej do przetwarzania obrazu w czasie rzeczywistym.
Interpolation-nearest.svgInterpolation-bilinear.svgInterpolation-bicubic.svg
Efekt interpolacji tego samego obrazu za pomocą metod (od lewej): „najbliższego sąsiada”, dwuliniowej i dwusześciennej

Zobacz też

Media użyte na tej stronie

Interpolation-bilinear.svg
Autor: Zykure, Licencja: CC BY-SA 4.0
Illustration of Bilinear interpolation on a random dataset. Compare with other interpolation methods that share the same dataset: File:Interpolation-bilinear.svg File:Interpolation-bicubic.svg File:Interpolation-hermite.svg
Interpolation-bicubic.svg
Autor: Zykure, Licencja: CC BY-SA 4.0
Illustration of Bicubic interpolation on a random dataset. Compare with other interpolation methods that share the same dataset: File:Interpolation-bilinear.svg File:Interpolation-bicubic.svg File:Interpolation-hermite.svg
Interpolation-nearest.svg
Autor: Zykure, Licencja: CC BY-SA 4.0
Illustration of en:Nearest neighbor interpolation on a random dataset. Compare with other interpolation methods that share the same dataset: File:Interpolation-bilinear.svg File:Interpolation-bicubic.svg File:Interpolation-hermite.svg