licence: GPL
STMedianFilter je (mírně pohybově kompenzovaný) prostorově/časový mediánový filtr.
Je docela jemnozrnný, používá jen sousední pixely v prostoru a času, takže se dívá na 26 sousedních pozic pro filtrování každé pozice. Nyní filtruje jak jas, tak barevnost, ale filtrování barevnosti je trochu více omezené, jak je popsáno níže.
POUŽITÍ - Pro použití prostě:
1) Umístěte STMedianFilter.dll do nějaké složky. Můžete ho získat z www.trbarry.com/STMedianFilter.zip
2) Ve vašem Avisynth souboru použijte příkazy podobné těmto;
LoadPlugin("F:\STMedianFilter\STMedianFilter.dll") Avisource("D:\kdekoli\mujsoubor.avi") STMedianFilter(S_FilterThreshHold, S_EdgeThreshHold, T_FilterThreshHold, T_MotionThreshHold)
Samozřejmě nahraďte jména souborů a složek vašimi vlastními a doplňte celočíselné hodnoty parametrů. Platné hodnoty pro každý z nich jsou od 0 do 255.
S a T výše označují prostorový (spatial) a časový (temporal) režim.
Dobrým startovním místem pro hodnoty parametrů by mohly být
STMedianFilter(8,15,4,7)
Větší hodnoty způsobí více filtrování, ale více artefaktů.
S_FilterThreshHold - nefiltruje pixel prostorově, pokud by se měnil více než o tuto hodnotu. Větší hodnoty mohou způsobit ztrátu pěkně podrobných obrysů, ale není to příliš citlivé.
S_EdgeThreshHold - nefiltruje pixel prostorově, pokud se hodnoty na hranách mění více než tato hodnota. Zdá se, že je docela shovívavý, takže může být podle přání hodně zvyšován.
T_FilterThreshHold - nefiltruje pixel časově, pokud by se měnil více než o tuto hodnotu. Větší hodnoty způsobí duchy. Nenastavujte přes 5-10 , aby jste se vyhnuli duchům.
T_MotionThreshHold - nefiltruje pixel časově, pokud se nekompenzované hodnoty pohybu mění více než o tuto hodnotu. Nenastavujte přes 10, aby jste se vyhnuli duchům.
Pokud tomu správně rozumím, jednoduchý mediánový filtr je prostě ořezávací krok, kde se nastavuje hodnota tak, aby nevyšla z určitých mezí - vysoké i nízké jeho sousedů.
Například, pokud jste měli 3 pixely v řádku, které měli hodnoty <5,8,7> mohli by jste oříznout středovou hodnotu aby nebyla mimo mezí - zespoda 5 , nebo shora 7, takže by jste ho nastavili na 7.
Teď si představte, že jste měli malý 3x3 video monitor, podobný ploše Rubikovy kostky. Obraz předchozího snímku byl spodní vrstvou kostky, aktuální snímek byl střední vrstvou, následující snímek byl horní.
Pak aktuální středový pixel by byl právě ve středu Rubikovy kostky a bylo by 13 způsobů jakými by jste mohli nakreslit čáru přes něj s jeho nejbližšími dvěma sousedy.
Já jsem porovnal každý z těchto párů sousedů, abych viděl který pár nejvíce odpovídal hodnotě. Použil jsem tento pár k oříznutí hodnoty středového pixelu.
Také jsem oříznul hodnotu pixelu jestliže:
1) by to nezměnilo hodnotu pixelu o více než hodnotu některého parametru FilterThreshold, a také;
2) množství 'nekompenzovaného pohybu' (soulad s hodnotami sousedů) byl menší než hodnota parametru MotionThreshHold.
2004/08/19 v.0.1.0.3 Released by Fizick 2005/01/30
2004/08/10 V 0.1.0.2 by Fizick - not public
2003/06/22 V 0.1.0.1 by Tom Barry
2003/01/22 V 0.1.0.0 by Tom Barry
2002/08/03 V 0.0.3.0 by Tom Barry
2002/08/03 V 0.0.2.0 by Tom Barry
2002/08/02 V 0.0.1.0 by Tom Barry
$English Date: 2005/07/10 16:11:01 $
Český překlad:23.4.2009