YLevels.avsi
########
# Levels transforms by Did�e
# Requires MaskTools v1.5.5 or greater
# last revision 2004-12-07
#
# PARAMETERS:
# "input_low" : (Default: 0)
# "gamma" : (Default: 1.0)
# "input_high" : (Default: 255)
# "output_low" : (Default: 0)
# "output_high" : (Default: 255)
# "show_function" : (Default: false) - the function to be made into a lookup-table
# transform, shown in postfix notation
#
# USAGE:
# YLevels(0, 1.2, 255, 0, 255, false)
# YLevels(0, 1.2, 255)
# YLevels(gamma=1.2)
# Constant
function Ylevels(clip clp,
\ int "input_low", float "gamma", int "input_high",
\ int "output_low", int "output_high", bool "show_function")
{
input_low = Default(input_low, 0)
gamma = Default(gamma, 1.0)
input_high = Default(input_high, 255)
output_low = Default(output_low, 0)
output_high = Default(output_high, 255)
show_function = Default(show_function, false)
wicked = "x " +string(input_low)+ " - " +string(input_high)+ " " +string(input_low)+ " - / 1 " +string(gamma)+
\ " / ^ " +string(output_high)+ " " +string(output_low)+ " - * " +string(output_low)+ " +"
return( show_function ? clp.subtitle(wicked) : clp.YV12LUT(Yexpr = wicked, U=2,V=2) )
}
# Gradient
function YlevelsG(clip clp,
\ int "input_low", float "gamma", int "input_high",
\ int "output_low", int "output_high", bool "show_function")
{
input_low = Default(input_low, 0)
gamma = Default(gamma, 1.0)
input_high = Default(input_high, 255)
output_low = Default(output_low, 0)
output_high = Default(output_high, 255)
show_function = Default(show_function, false)
wicked = gamma > 1.0
\ ? "x " +string(input_low)+ " - " +string(input_high)+ " " +string(input_low)+ " - / 1 " +string(gamma)+
\ " / ^ " +string(output_high)+ " " +string(output_low)+ " - * " +string(output_low)+ " + x * x 255 x - * + 255 /"
\ : "x " +string(input_low)+ " - " +string(input_high)+ " " +string(input_low)+ " - / 1 " +string(gamma)+
\ " / ^ " +string(output_high)+ " " +string(output_low)+ " - * " +string(output_low)+ " + 255 x - * x x * + 255 /"
return( show_function ? clp.subtitle(wicked) : clp.YV12LUT(Yexpr = wicked, U=2,V=2) )
}
# Sine
function YlevelsS(clip clp,
\ int "input_low", float "gamma", int "input_high",
\ int "output_low", int "output_high", bool "show_function")
{
input_low = Default(input_low, 0)
gamma = Default(gamma, 1.0)
input_high = Default(input_high, 255)
output_low = Default(output_low, 0)
output_high = Default(output_high, 255)
show_function = Default(show_function, false)
wicked="x " +string(input_low)+ " - " +string(input_high)+ " " +string(input_low)+ " - / 1 " +string(gamma)+
\ " / ^ " +string(output_high)+ " " +string(output_low)+ " - * " +string(output_low)+ " + x 162,97466 /" +
\ " sin 255 * * x 255 x 162,97466 / sin 255 * - * + 255 /"
return( show_function ? clp.subtitle(wicked) : clp.YV12LUT(Yexpr = wicked, U=2,V=2) )
}
# Cosine
function YlevelsC(clip clp,
\ int "input_low", float "gamma", int "input_high",
\ int "output_low", int "output_high", bool "show_function")
{
input_low = Default(input_low, 0)
gamma = Default(gamma, 1.0)
input_high = Default(input_high, 255)
output_low = Default(output_low, 0)
output_high = Default(output_high, 255)
show_function = Default(show_function, false)
wicked="x " +string(input_low)+ " - "+ string(input_high)+ " " +string(input_low)+ " - / 1 "+string(gamma)+
\ " / ^ " +string(output_high)+ " " +string(output_low)+ " - * " +string(output_low)+ " + 255 x 162,97466" +
\ " / cos 255 * - * x x 162,97466 / cos 255 * * + 255 /"
return( show_function ? clp.subtitle(wicked) : clp.YV12LUT(Yexpr = wicked, U=2,V=2) )
}
Back to ShareFunctions