2010-08-30 5 views
0

J'ai besoin de lire des paires d'images avec avisynth et de les traiter.Poignée Avisynth paires pairs d'images

eg 
frame1 + frame2 => result1  
frame2 + frame3 => result2 
frame3 + frame4 => result3 

Je sais les commandes SelectEven() et SelectOdd(), mais ils me donnent frame1 et 2 puis frame3 et 4.
Il n'y a aucun moyen de faire un "if()" pour travailler à quelle étape I suis sur ou repousse un cadre saisi.

Une idée de comment implémenter cela?

Répondre

0
//assuming video is the input 

even = SelectEven(video)  
odd = SelectOdd(video)  

// should produce 0,1 1,2 2,3 .... 
// seems bad to have to split into odd and even then interleave them back together 
// but Select only works with interleaved sources 

interleave(even,odd)  
SelectEvery(2,0,-1,0,1)  
trim(2,0)  

right = SelectEven() 
left = SelectOdd() 

donnera 0,1 1,2 2,3 3,4 4,5 5,6 etc

commentaires ps dans avisynth sont # // pas mais il brise la mise en forme SO.
pps ne sais pas pourquoi c'est la syntaxe qui met en évidence certains bits ou comment il a deviné quelle langue.

+0

Je ne sais pas pourquoi 'SelectEvery' serait « uniquement avec les sources intercalés » ... AviSynth n'a pas notion de sources intercalés, juste une séquence d'images (qui pourrait être basée sur les images ou sur le terrain). En outre, cela ressemble surtout à une façon détournée de faire Interleave (vidéo, vidéo). – jamesdlin

+0

@jamesdlin - peut-être que cela a changé au cours des 5 dernières années mais je ne l'utilise plus. S'il vous plaît modifier/fournir une meilleure réponse si vous le pouvez - c'est le point de SO –