|
forum.optyczne.pl
|
 |
Wolne tematy - Interpolacja dwusześcienna
HTMLame - Pon 22 Lut, 2010 Temat postu: Interpolacja dwusześcienna Witam, chciałbym wykorzystać interpolację dwusześcienną przy skalowaniu obrazków - a dokładnie przy ich powiększaniu.
Metoda, ta uwzględnia kolor od wszystkich ośmiu pikseli sąsiadujących z pikselem interpolowanym.
Obrazek będzie powiększany dwukrotnie (np. z wymiarów 4x4 na 8x8).
Początkowo mam bitmapę jak na rysunku:
Po dwukrotnym powiększeniu otrzymuję coś takiego:
I teraz problem: jak wypełnić brakujące piksele? (Tzn. te o białym tle i czerwonych numerkach). Oczywiście operację należy wykonać dla każdej składowej koloru, ale zajmijmy się tylko jedną składową.
Od którego piksela należy w ogóle zacząć? Powiedzmy, że chciałbym zająć się pikselem 17, ale tutaj mam tylko informację na temat dwóch sąsiadujących pikseli.
Albo, jeśli zacząć od 22: tutaj informacja nt. czterech sąsiadujących pikseli.
I tutaj jest problem. Jak mam utworzyć brakujące piksele, jeśli mam informację jedynie od, maksymalnie, czterech sąsiadujących - a nie od ośmiu.
hijax_pl - Pon 22 Lut, 2010
HTMLame, poszukaj sobie na necie algorytmu Lanczos3 - chyba najpopularniejszą odmianę bicubic interpolation
ghost - Pią 26 Lut, 2010
lanczos nie ma nic wspólnego z bicubic
zacznij od bilineara, na wiki masz przykładowy kod.
potem bilinear, szczególny przypadek czyli Hermit.
|
|