GeneralConvolution
(clip, int "bias", string "matrix", float "divisor", bool "auto")
Tento filtr provádí konvoluční (spirálovou) matici.
clip | RGB32 klip |
bias (výchozí 0) | aditivní posun pro přizpůsobení celkové výstupní intenzity |
matrix (výchozí "0 0 0 0 1 0 0 0 0") | může být matice 3x3 nebo 5x5 s 9 nebo 25 celými čísly mezi -256 a 256 |
divisor (výchozí 1.0) | dělí výstup konvoluce (vypočítává se před přidáním posunutí) |
auto (výchozí true) | Zapíná funkci automatické změny velikosti. Dělí výsledek součtem elementů matice. Hodnota divisor je použita jako doplnění tohoto faktoru automatické změny velikosti. Pokud je součet elementů nula, auto je vypnuto. |
Parametr divisor je obvykle součtem elementů matice. Ale pokud je součet nula, musíte použít divisor a nastavení posunu bias pro korekci hodnot pixelů. Parametr bias může být užitečný pokud jsou hodnoty pixelu záporné po konvoluci. Po přidání posunu, jsou hodnoty pixelů ze spodu oříznuty na nulu a shora na 255 (pokud jsou větší než 255).
Kolem okrajů se krajní pixely jednoduše opakují pro předání do matice.
Několik příkladů:
# Rozmazání: GeneralConvolution(0, " 10 10 10 10 10 10 10 10 10 10 10 10 16 10 10 10 10 10 10 10 10 10 10 10 10 ", 256, False)
# Horizontální (Sobel) detekce hran: GeneralConvolution(128, " 1 2 1 0 0 0 -1 -2 -1 ", 8)
# Vertikální (Sobel) detekce hran: GeneralConvolution(128, " 1 0 -1 2 0 -2 1 0 -1 ", 8)
# Posunutí (jednoduše posune pozici # "1" nalevo, doprava, nahoru, dolů) GeneralConvolution(0," 0 1 0 0 0 0 0 0 0 ")
# Posunutí o polovinu pixelu nahoru (automatická změna velikosti): GeneralConvolution(0," 0 1 0 0 1 0 0 0 0 ")
# Posunutí o polovinu pixelu doprava (ruční změna velikosti): GeneralConvolution(0," 0 0 0 0 128 128 0 0 0 ", 256, False)
# Zostřující filtr: GeneralConvolution(0," 0 -1 0 -1 5 -1 0 -1 0 ", 1, True) V tomto případě, jsou hodnoty nových pixelů y(m,n) dány vztahem y(m,n) = (-1*x(m-1,n) - 1*x(m,n-1) + 5*x(m,n) - 1*x(m,n+1) - 1*x(m+1,n))/(-1-1+5-1-1)/1.0 + 0
# Mírně rozmazávající filtr s omezením úrovně černé a zjasněním (brightening) o 25%: GeneralConvolution(-16," 0 12 0 12 256 12 0 12 0 ", 0.75 ,True) V tomto případě, jsou hodnoty nových pixelů y(m,n) dány vztahem y(m,n) = ( 12*x(m-1,n) + 12*x(m,n-1) + 256*x(m,n) + 12*x(m,n+1) + 12*x(m+1,n) )/(12+12+256+12+12)/0.75 - 16
Některé další příklady naleznete zde.
Historie změn:
v2 | Původní vydání |
v2.55 | přidáno divisor, auto |
$English Date: 2008/05/28 21:24:49 $
Český překlad:13.10.2008