Taki mały problem z filtrami.
http://www.algorytm.org/przetwarzanie-obrazow/filtrowanie-obrazow.html
https://pl.wikipedia.org/wiki/Filtracja_obraz%C3%B3w
Mamy np. prosty filtr: 1 2 1,
co po wymnożeniu z Y daje kwadrat:
1 2 1
2 4 2
1 2 1
zatem teraz aby to wyliczyć potrzeba aż 9 operacji.
ale po co mi to tak robić?, przecież wystarczy użyć ten filtr liniowy 121, ale dwa razy: raz po x a potem po y, nie?
liczba operacji: 2*3 = 6, czyli mniej od 9!
Dalej z tym jedzmy: weźmy szerszy filtr, np.: 1234321, ma długość 7;
co w wersji 2D da aż 7x7 = 49 mnożeń i dodawań!
i znowu zamieniamy na dwa przejścia po 7, co daje 2x7 = 14 tylko!
...........
Ogólnie: filtr długości n daje macierz o rozmiarze n^2,
ale to samo załatwia: 2n - wykonanie dwa razy: po x i y osobno.
n^2/2n = n/2, zatem takie mnożenie kwadratami kosztuje znacznie więcej,
np. dla n = 15 otrzymamy tu aż 15/2 = 7.5 razy więcej roboty!
Zgadza się?
Bo trochę dziwnie mi to wygląda - po co programy graficzne mnożą zawsze te macierzowe filtry: n^2 operacji, zamiast ciachnąć to dwa razy = 2n? :)