When i run the two exposure on my projector they are not in aling to aling them i have a avisynth script for that to that i did get from here
http://forum.doom9.org/showthread.php?t=152109&page=3 post nr #41 but i did have to tweek it little to work even beter but it´s very slow :/ but it works very very good

for my setup anyway
uncomment #return c_ref to tweek a_cont and b_cont odd and even picture look about the same
Code: Select all
a=ImageSource("F:\Reel1\N\pgm\bmp\image%d.bmp",start=1,end=32429,fps=18).ConvertToYV12()
b=ImageSource("F:\Reel1\E\ppm\bmp\image%d.bmp",start=1,end=32429,fps=18).ConvertToYV12()
c = Interleave(a, b)
a_cont=6.45
b_cont=1.15
a_ref = a.NonlinUSM(1.2,2.6,6.0,8.5).HighlightLimiter(1,true,1,true,100).tweak(cont=a_cont).MT_binarize(threshold=80).greyscale().invert()
b_ref = b.NonlinUSM(50.2,2.6,6.0,8.5).HighlightLimiter(1,true,1,true,100).tweak(cont=b_cont).MT_binarize(threshold=25).greyscale().invert()
c_ref = Interleave(a_ref, b_ref)
#return c_ref #USE this to see that odd and even picture look about the same
mdata = DePanEstimate(c_ref,trust=1.0,dxmax=10,dymax=12)
c_stab = DePanInterleave(c, data=mdata)
b_stab = c_stab.SelectEvery(6, 2)
a_stab = c_stab.SelectEvery(6, 1)
you need this two functions to
Code: Select all
function HighlightLimiter(clip v, float "gblur", bool "gradient", int "threshold", bool "twopass", int "amount", bool "softlimit", int "method")
{
gradient = default (gradient,true) #True uses the gaussian blur to such an extent so as to create an effect similar to a gradient mask being applied to every area that exceeds our threshold.
gblur = (gradient==true) ? default (gblur,100) : default (gblur,5.0) #The strength of the gaussian blur to apply.
threshold = default (threshold,150) #The lower the value, the more sensitive the filter will be.
twopass = default (twopass,false) #Two passes means the area in question gets darkened twice.
amount = default (amount,10) #The amount of brightness to be reduced, only applied to method=2
softlimit = default (softlimit,false) #If softlimit is true, then the values around the edges where the pixel value differences occur, will be averaged.
method = default (method, 1) #Method 1 is multiply, the classic HDR-way. Any other method set triggers a brightness/gamma approach.
amount = (amount>0) ? -amount : amount
darken=v.Tweak(sat=0).mt_lut("x "+string(threshold)+" < 0 x ?")
blurred= (gradient==true) ? darken.gaussianblur(gblur).gaussianblur(gblur+100).gaussianblur(gblur+200) : darken.gaussianblur(gblur)
fuzziness_mask=blurred.mt_edge(mode="prewitt", Y=3, U=2, V=2).mt_expand(mode="both", Y=3, U=2, V=2)
multiply = (method==1) ? mt_lut(v,"x x * 255 /") : v.Tweak(bright=amount)
multiply = (method==1) ? eval("""(twopass==true) ? mt_lutxy(multiply,v,"x y * 255 /") : multiply""") : eval("""(twopass==true) ? multiply.SmoothLevels(gamma=0.9,smode=2) : multiply""")
merged=mt_merge(v,multiply,blurred)
fuzzy= (softlimit==true) ? mt_merge(merged,mt_lutxy(v,merged,"x y + 2 /"),fuzziness_mask) : merged
return fuzzy
}
this function did help to get all edge in the pictures to pop up more it did help more to aling maby some other sharpening function can to the same
Code: Select all
function NonlinUSM(clip o, float "z", float "pow", float "str", float "rad", float "ldmp")
{
z = default(z, 6.0) # zero point
pow = default(pow, 1.6) # power
str = default(str, 1.0) # strength
rad = default(rad, 9.0) # radius for "gauss"
ldmp= default(ldmp, 0.001) # damping for verysmall differences
g = o.bicubicresize(round(o.width()/rad/4)*4,round(o.height()/rad/4)*4).bicubicresize(o.width(),o.height(),1,0)
mt_lutxy(o,g,"x x y - abs "+string(z)+" / 1 "+string(pow)+" / ^ "+string(z)+" * "+string(str)+
\ " * x y - 2 ^ x y - 2 ^ "+string(ldmp)+" + / * x y - x y - abs 0.001 + / * +",U=2,V=2)
#interleave(o,last) # just for visualisation, you don't want the function to do this
return(last)
}