2020/10/30

A Sampling Lánczos kutyái, Bilineár és Bikubik,megvesztek?

Remélem elég szürreális a cím, de azért az átjön, hogy továbbra is a samplingről van szó. Pontosabban a képméretezések laikusok általi soha meg nem érthetőségéről.

Az interneten sokan vállalkoznak arra, hogy ezeket nekünk elmagyarázzák, sajnos, amikor leellenőrizzük a gyakorlatban, mégiscsak azt tapasztaljuk, hogy a PS, GIMP, vagy IRFAN totál másképpen működik, mint a papírforma. Az elv mindenesetre nem bonyolult. Az alábbi ábrán a felső sor csak egy dimenzió mentén mutatja a műveleteket, minket a "bi" sor érdekel, mivel a fotó leginkább két dimenziós (bár tudjuk, hogy három, vagy legalábbis ezek permutációi).

A nearest neighborról már volt szó. Elméletben a bilinear a súlyozott átlag alapján kellene működjön (legalábbis - ebben a videóban 4:30 környékén erről beszélnek). A valóságban azonban a PS teljesen más eredményt ad. Lássuk a konkrét példát a videóból. 100 és 200 legyen a kezdeti pixelek értéke. Ebből csináltunk egy 3*3-as pepitamintát. Ezt növeljük 7*7 pixelre, tehát minden létező pixel közé két új pixelt kell kitalálni. Legyen az alábbi ábrán a négy mérési pont: 100 - X - Y - 200 ahol az X pixelérték 2/3 távolságra van a 100-tól és 1/3 távolságra van a 200-tól. Az Y pedig 1/3 távolságra van a 100-tól de 2/3 távra a 200-tól. 
Tehát X= 2/3*100+1/3*200 = 133 , az Y= 1/3*100+2/3*200 = 166. Ha unod a számigálást van online kalkulátor is
Ezzel szemben mit mérünk PS-ban? Ezt:

az1-es és 4-es mérések a kiinduló pixelértékek, X a kettes, Y a hármas. 

Kijön 114 illetve 157. Hát hogy? Talán azért van, mert mi csak egy irányt számítottunk de ő két irányban maszatol? Ezért megnéztük csak 2 pixellel is, hogy ne tudjon a függőleges tengely mentén konspirálni.


Most meg 125 és 175 jön ki. Érzem, ahogy lassan  felmegy a cukrom.  


Ezt meg a GIMP ugyanabból, ugyancsak Linear (ott nem bilinear a neve) módszerrel. Na, itt hagyjuk abba. Tehát ahány program, annyiféle algoritmus. Persze lehetne próbálgatni, hogy vajon ez nem e amiatt van, mert túlságosan közel vannak a szélek, és hogy nagyobb környezetből számol. Lássuk akkor egyetlen nagyobb kép lineáris interpolációját 300 pixelről fel 400-ra, PS-ben és GIMP-ben. BMP-re konvertálva, nehogy a JPEG blokkocskák, vagy profileok bekavarjanak. 

Persze szabad szemmel nem látszik a két külön programból interpolált BMP között a különbség (Differencies módban vannak egymáson), de ha ezt egy görbével kihangsúlyozzuk, egyből nyilvánvaló, hogy nemcsak a kép szélein dolgozik másképp a két algoritmus, hanem mindenhol, ahol apró részletek vannak

Ezek után úgy döntöttünk, hogy a köbös és annál sokkal komplexebb módszerekbe (Lanczos, Spline, stb) nem is ártjuk bele magunkat. Sőt, már olyan tesztet sem kell csináljunk, ahol a különböző algoritmusokat hasonlítják össze, mert már létezikEzt, meg ezt is érdemes megnézni. Itt meg arról olvashatunk, hányféle bicubic módszer is lehetséges különféle programokban. 

Nincsenek megjegyzések:

Megjegyzés küldése