Splot i jądro splotu

Przy obliczaniu danych koloru piksela wyjściowego można wykorzystywać wartości
pikseli Żródłowych otaczających dany piksel. Takie obliczenia nazywamy splotem:

rgb(r0,g0,b0) rgb(r1,g1,b1) rgb(r2,g2,b2)
rgb(r3,g3,b3) rgb(r4,g4,b4) rgb(r5,g5,b5)
rgb(r6,g6,b6) rgb(r7,g7,b7) rgb(r8,g8,b8)

Aby obliczyć wartości koloru dla piksela wynikowego używamy jądra
splotu
. Jądro splotu to macierz liczb:

która może być przedstawiona w postaci zwykłej tablicy
1-wymiarowej:

Wartości kolorów dla koloru wynikowego obliczamy następująco:

Mamy zestaw pikseli o kolorach:

rgb(20,185,250) rgb(40,165,240) rgb(60,145,230)
rgb(80,125,220) rgb(100,105,210) rgb(120,85,205)
rgb(140,66,200) rgb(160,45,195) rgb(180,25,190)

Stosujemy jądro:

Wykonujemy obliczenia:

Rysujemy piksel wynikowy:

     
  rgb(100,105,217)  
     

Jak widzimy – zgodnie z oczekiwaniami – piksel ma nieco więcej
komponentu niebieskiego.

Jak widzimy przy obliczeniu jednego piksela należy przeprowadzić
wiele obliczeń obciążających procesor komputera.

Przy obrazku o wymiarach 300 x 150 z jądrem 3 x 3 procesor musi
wykonać 300 x 150 x 3 x 17 = 2 295 000 operacji

Dlatego filtrowanie splotowe najlepiej wykonać wcześniej, a
następnie załadować gotowy, zapamiętany obraz.

Wartości w macierzy (jądra) splotu sumują się do 1.0. Gdy
wartości te nie sumują się do jedności nastąpi zmiana jasności obrazu
(co oczywiście można wykorzystać).

Wartości w macierzy jądra splotu mogą być również wyższe od
jedności. Mogą też być liczbami ujemnymi.

Jądro nie musi mieć rozmiaru m x n = 3 x 3. m i n mogą być
dowolnymi liczbami nieparzystymi (liczby parzyste prowadzą do
zakłócenia symetrii tworzonego efektu). Należy jednak pamiętać o
zwiększeniu się obciążenia procesora.

Algorytmy pozwalające na zastosowanie filtrów splotowych przedstawiamy
dalej w tekście.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *