AranyKéz#15
Nem tudom honnan nézed ezeket a diszkrét kerneleket, de inkább keress jobb leírásokat. Például amiből én megértettem a folytonos és a diszkrét (1D) kernelek közötti összefüggést: Filters For Common Resampling Tasks
Két leggyakrabban használt csoportja a folytonos szűrőknek az átméretezéshez használt, valamint az elmosásra használt szűrők. Előbbi csoportba tartoznak például a box / rectangular, linear / triangular / tent, hermite, bell, (bi)cubic, lanczos, sinc szűrők. Utóbbiba például a gauss / gaussian szűrő. A legszembetűnőbb különbség a két csoport között abból adódik, hogy az átméretezéshez használt szűrők 1:1 arányú mintavételezés esetén visszaadják az eredeti képet (f(1) = 1.0, és minden egész k nem 1-re f(k) = 0.0), míg az elmosásra használt szűrők módosítják azt.
Például nézzük meg a lineáris kernelt:
f(x) = 1.0 - |x| ha |x| <= 1.0
0.0 ha |x| > 1.0
1:1 arányú mintavételezésével kapott diszkrét kernele:
...
f(-2) = 0.0
f(-1) = 0.0
f(+0) = 1.0
f(+1) = 0.0
f(+2) = 0.0
...
Vagyis az annak megfelelő 1D szűrő az [1], separable 2D szűrő meg egy 1x1-es mátrix, [1]. Ez valóban, semmit nem csinál a képpel.
Viszont ha nem 1:1 arányú, hanem mondjuk 1:2 arányú mintavételezést használunk:
...
f(-1.5) = 0.0
f(-1.0) = 0.0
f(-0.5) = 0.5
f(+0.0) = 1.0
f(+0.5) = 0.5
f(+1.0) = 0.0
f(+1.5) = 0.0
...
Vagyis a megfelelő (normalizált) 1D szűrő a [0.25, 0.5, 0.25], separable 2D szűrő meg egy 3x3-as mátrix (ugyancsak normalizált):
[1/16 1/8 1/16]
[1/8 1/4 1/8 ]
[1/16 1/8 1/16]
Ezt általában a képméret felezésére szokták használni (az arány ugyebár 1:2), de teljesen nyugodtan lehet a kép átméretezés nélküli elmosására is használni.
Az általad is beírt
[1/9 1/9 1/9]
[1/9 1/9 1/9]
[1/9 1/9 1/9]
kernel az bizony a box kernel 3x3-as diszkrét verziója. Ilyen és hasonló kerneleket gyakran alkalmaznak egyszerűségük miatt, de elég pocsékul szűrik le a magas frekvenciákat, tiszta cikkcakk lesz tőlük a kép.