Seite 1 von 1

Stapelverarbeitung mit sukzessiver Veränderung

Verfasst: Do 21 Okt, 2010 16:24
von kili
Hi,
da VDL offenbar leider nicht in der Lage ist, einen starken Gaussian-Blur zu keyen, muss ich das halt "manuell" erstellen.

Ich möchte ein Ursprungsbild nehmen, dieses automatisch duplizieren und bei jedem Durchgang um 10% stärker "blurren" lassen, so dass ich am Schluss eine Bilderserie des selben Fotos habe, mit zunehmender weichzeichnung.

Mit Imagemagick müsste das bestimmt gehen, wenn man sich da einarbeitet... aber gibts da nicht irgendein Programm, das solch eine Stapelverarbeitung mit sukzessiver Veränderung schon anbietet (und möglichst günstig ist, immerhin brauch ich nur den effekt)?

viele grüße!

Re: Stapelverarbeitung mit sukzessiver Veränderung

Verfasst: Do 21 Okt, 2010 17:08
von tommyb
Warum machst Du es denn nicht von Hand? Bei 10% wären ja theoretisch nur 10 Bilder notwendig...

... aber mit Avisynth und der Funktion "Scriptclip" würde das problemlos gehen.

Re: Stapelverarbeitung mit sukzessiver Veränderung

Verfasst: Do 21 Okt, 2010 17:32
von tommyb
Ich habe heute einen guten Tag wie es scheint:

Du brauchst Avisynth, VirtualDub und ein JPG-Bildchen als Quelle. Außerdem brauchst Du den VariableBlur-Filter der bei Avisynth in den Plugins-Ordner kommen muss:
http://forum.doom9.org/showthread.php?t=88645

Das ist das Script wie Du es haben willst (oder wie ich es verstanden habe). Ein Frame wird mit einem festen Wert multipliziert, das Ergebnis ist die Stärke des Gausschen Weichzeichners:

Code: Alles auswählen

ImageSource("bild.jpg", 0, 10, 25.000)
converttoyv12()
ScriptClip&#40;last, "diff = current_frame"+chr&#40;13&#41;+"diff < 1 ? last &#58; last.gaussianblur&#40;current_frame*10&#41;"&#41;
Die Lösung finde ich nicht optimal, weil das erste unscharfe Bild sprunghaft unscharf ist. Allerdings frisst der gaussianblur-Filter keine Werte unter 1 (also auch kein 0.5).

Besser und schöner finde ich das hier:

Code: Alles auswählen

ImageSource&#40;"bild.jpg", 0, 10, 25.000&#41;
converttoyv12&#40;&#41;
ScriptClip&#40;last, "diff = current_frame"+chr&#40;13&#41;+"diff < 1 ? last &#58; last.gaussianblur&#40;current_frame*current_frame&#41;"&#41;
Dabei wird der Wert einzeln aus der Framezahl multipliziert. D.h.

Frame 0 -> nix
Frame 1 -> 1x1 = 1
Frame 2 -> 2x2 = 4
Frame 3 -> 3x3 = 9

usw. Das ist dann ein schönerer, ansteigender Unschärfeverlauf.

Re: Stapelverarbeitung mit sukzessiver Veränderung

Verfasst: Do 21 Okt, 2010 17:46
von kili
hi,
das sieht super aus.
jetzt muss ich mir nur noch die syntax antrainieren :D

Edit: das letzte beispiel funktioniert leider nicht. wrong arguments in ScriptClip...

vielen dank!

Re: Stapelverarbeitung mit sukzessiver Veränderung

Verfasst: Do 21 Okt, 2010 21:04
von tommyb
Schau mal ob Du beim Rüberkopieren nicht zufällig irgendwas vergessen hast. Bei mir läufts (auch auf dem Privatrechner).