MaskHS
(clip, float "startHue", float "endHue", float "maxSat", float "minSat", bool "coring")
Přidáno ve v2.6. Tento filtr vrací masku (jako Y8) klipu použitím daného rozsahu odstínu (hue) a sytosti (saturation).
startHue (výchozí 0), endHue (výchozí 360): (oba od 0 do 360; dáno ve stupních). Odstín a sytost budou upraveny pro hodnoty v rozsahu [startHue, endHue] když startHue<endHue. Všimněte si, že odstín je periodický, takže odstín 360 stupňů odpovídá odstínu s nula stupni. Pokud je endHue<startHue , pak bude vybrán rozsah [endHue, 360] a [0, startHue] (tedy proti směru hodinových ručiček). Pokud potřebujete vybrat například rozsah [350, 370], musíte zadat startHue=370 a endHue=350. Tedy při použití výchozích hodnot budou zpracovány všechny pixely.
maxSat (výchozí 150), minSat (výchozí 0): (oba od 0 do 150 s minSat<maxSat; dáno v procentech). Odstín a sytost budou upraveny pro hodnoty v rozsahu [minSat, maxSat]. Prakticky bude sytost pixelu v rozsahu [0,100] (tedy 0-100%), protože to odpovídá platným RGB pixelům (100% odpovídá R=255, G=B=0, což má sytost 119). Přestřelení (až do 150%) je umožněno pro ne-platné RGB pixely (150% odpovídá U=V=255, který má sytost odmocnina z (127^2+127^2) = 180). Tedy při použití výchozích hodnot budou zpracovány všechny pixely.
coring = true/false (výchozí false). Když je nastaveno na true, jas - luma (Y) je oříznuto do [16,235]; když je nastaveno na false, jas je ponechán nedotčený.
Předpokládejme, že chceme vytvořit masku kůže dívky. Správný způsob jak to udělat je použít pohled do vectorscopu filtru Histogram:
clip = ... Histogram(clip, mode="color2")
a odhadnout rozsah odstínu, který chcete vybrat. Jak je možné vidět, oranžový odstín je mezi (asi) 105 a 165 stupni.
snižujte rozsah odstínu až naleznete správný rozsah odstínu, který by měl být zpracován. Použijte hodnoty
MaskHS
a zmenšujte interval dokud není vybrán ten správný. Také pro to můžete použít filtr
Tweak (se sat=0). Použitím příkladu ve Tweak je získána následující maska:
![]() |
![]() |
originál | MaskHS(startHue=105, endHue=138) |
Pohledem na příklad modré obrazovky ve filtru Overlay lze použít následující
testcard = ColorBars() # příklad titulkového souboru s modrým pozadím: subs = ImageSource("F:\TestClips\blue.jpg").ConvertToYV24 # subs.Histogram(mode="color2").ConvertToRGB # modrá v [345,359] mask_hs = subs.MaskHS(startHue=340, endHue=359).Levels(0, 1, 255, 255, 0) Overlay(testcard, subs, mask=mask_hs, mode="blend", opacity=1)
Seznam změn:
v2.60 | Původní vydání |
$English Date: 2007/08/22 20:53:07 $
Český překlad:31.8.2009