### [rgb32]

# GeneralConvolution

## GeneralConvolution(clip, int "bias", string matrix)

matrix: może być macierzą 3x3 lub 5x5 z 9 lub 25 liczbami całkowitymi
bias: jest dodawane do nowych wartości pikseli. To może być przydatne, jeśli wartości pikseli są planowane ujemne do convolution. Przed dodawaniem bias, piksele są dokładnie przycinane do zera (i 255 jeśli są większe niż 255), domyślnie bias przyjmuje wartość 0

Filtr ten wykonuje matrix convolution. (obliczenia na macierzach???)

Przykłady:

GeneralConvolution(0," 10 10 10 10 10 10 10 10 10 10 10 10 10 16 10 10 10 10 10 10 10 10 10 10 10 ") | # | rozmazanie
GeneralConvolution(0," 1 2 1 0 0 0 -1 -2 -1 ") | # | pozioma detekcja krawędzi
GeneralConvolution(0," 1 0 -1 2 0 -2 1 0 -1 ") | # | pionowa detekcja krawędzi
GeneralConvolution(0," 0 1 0 0 0 0 0 0 0 ") | # | przesunięcie (prosty ruch z pozycji "1" na lewo, prawo, w górę i w dół)
GeneralConvolution(0," 0 128 0 0 128 0 0 0 0 ") | # | przesunięcie do góry o połowę piksela
GeneralConvolution(0," 0 0 0 0 128 128 0 0 0 ") | # | przesunięcie w prawo o połowę piksela
GeneralConvolution(0," 0 -1 0 -1 5 -1 0 -1 0 ") | # | wyostrzanie

Kilka przykładów można znaleźć [tutaj]

### translated by Slim