Log in

View Full Version : Please test and improve this dehalo script


bxyhxyh
4th May 2014, 08:44
Function dehalo_blah(clip c, float "rx", float "ry", float "darkstr", float "brightstr", float "lowsens", float "highsens", float "ss",
\ int "sw", int "sh", string "expandmode", int "leftover", bool "double", int "sharpness", string "sharptype", bool "show")
{
rx = default(rx,2.0)
ry = default(ry,2.0)
darkstr = default(darkstr,1.0)
brightstr = default(brightstr,1.0)
lowsens = default(lowsens,50)
highsens = default(highsens,50)
ss = default(ss,1.5)
sw = default(sw,1)
sh = default(sh,1)
expandmode = default(expandmode,"rectangle")
double = default(double,true)
show = default(show,false)
sharpness = default(sharpness,0) # Strength for lsfmod. If it is higher than 0 it will sharpen your video before removes halo.
sharptype = default(sharptype,"fast") # Defaults value for lsfmod.
leftover = sharpness==0 ? default(leftover,5) : default(leftover,6) # you can set this lower if there is some halo left without masked

sharpen = sharpness==0 ? false : true
sharpness = sharpness==0 ? 120 : sharpness
sharp = c.lsfmod(strength=sharpness,defaults=sharptype)
mask = mt_lutxy(sharp,c,"x y - 1 - 255 *",u=1,v=1).mt_expand_multi(sw=sw,sh=sh,mode=expandmode,u=1,v=1)
c = !sharpen ? c : sharp
nohalo = double ? c.dehalo_alpha_mt(rx=rx,ry=ry,darkstr=darkstr,brightstr=brightstr,lowsens=lowsens,highsens=highsens,ss=ss).dehalo_alpha_mt(rx=rx,ry=ry,darkstr=darkstr,brightstr=brightstr,lowsens=lowsens,highsens=highsens,ss=ss) \
: c.dehalo_alpha_mt(rx=rx,ry=ry,darkstr=darkstr,brightstr=brightstr,lowsens=lowsens,highsens=highsens,ss=ss)
merged = mt_merge(c,nohalo,mask)
mask2 = mt_lutxy(merged,nohalo,"x y - " + string(leftover) + " - 255 *",u=1,v=1)
return !show ? mt_merge(merged,nohalo,mask2) : mt_logic(mask,mask2,"max").grayscale()
}
Source
http://thumbnails112.imagebam.com/32454/b84c5a324535712.jpg (http://www.imagebam.com/image/b84c5a324535712)

Dehalo
http://thumbnails112.imagebam.com/32454/58a305324535766.jpg (http://www.imagebam.com/image/58a305324535766)

Masked
http://thumbnails110.imagebam.com/32454/0cb903324535730.jpg (http://www.imagebam.com/image/0cb903324535730)

*.mp4 guy
13th May 2014, 23:11
It looks fine, and the basic methodology is also fine. It's a technique that has been tried quite often to say the least, and it always works well enough on cell-shaded material. If you want something good for more natural content, or just more detailed content, it is unlikely to ever be particularly good.

SEt
14th May 2014, 01:31
I suggest you start at YAHR. Just dumb four times the YAHR (might be slightly modded already):
http://thumbnails112.imagebam.com/32642/957265326413467.jpg (http://www.imagebam.com/image/957265326413467)
Needs some tweaking, but resuilt is much better imho, as it killed only halos.

bxyhxyh
26th May 2014, 18:25
To avoid lsfmod()
dehalo_blah() It now internally sharpens the video before removes halo, if sharpness is higher than 0.
But it have only sharptype (defaults) and sharpness (strength) parameters for lsfmod().

Code above is now
dehalo_blah(sharpness=100,sharptype="fast")

Also changed default value of rx and ry to 2. (was 3)