horizontale Störstreifen entfernen

  • Hallo,
    ich beschätige mich erst seit 2 Tagen mit avisynth und komme damit auch soweit klar (Zuspieler für Sony Vegas). Ich habe in der Mongolei einige Fahraufnahmen vom Motorrad gemacht. Aufgezeichnet wurde auf einer HV20.
    Nun habe ich (leider vor Ort nicht so richtig gesehen) horizontale Störstreifen im Bild, die wohl von einem mangelnden Kopfkontakt des Bandes herkommen. Die Streifen sind von Frame zum Frame mal mehr mal weniger (die Anzahl hängt davon ab wie heftig das Motorrad durchgerüttelt wurde (auf Asphalt ist so gut wie nix zu sehen)) und immer an anderer Stelle.

    Sie sind 1 Pixel hoch, ziehen sich aber über die gesamte Breite, wobei besonders der weisse Bereich arg störend ist.

    Eigentlich bräuchte ich einen Filter der diese Linie (im Himmelsbereich ist es nervig - auf dem Boden eher nicht) erkennt (100% Weiss) und sie dann mit der vom vorherigen oder nachfolgenden Frame austauscht.

    Ich habe mit despot und Removedirt versucht die Sachen wegzubekommen, aber irgendwie klappt das nicht so, wie ich es mir vorstelle.

    Hier ist mal ein Screenshot mit 2 störenden Streifen im Himmel und 2 im Bodenbereich.

    Würde mich über ein paar Tips freuen
    Danke
    Andreas

  • Frage: Sind die Streifen immer in den selben Zeilen?

    Edit: Ah, habs überlesen, hast Du ja geschrieben.

    mawi2006

    Intel Q9550@2500 MHz / Motherboard Name Asus P5N-VM WS / Grafikkarte NVIDIA Quattro FX470 / 4x2 GB 800 MHz / DVD-RAM DVR-216DBK / LiteOn IHas 322 / HDD: 500 GB HD502HJ / SSD: Solidata K5 64GB

  • das ganze sieht wie eine analogaufzeichung auf analogband aus.

    was genau ist da passiert?

    bitte ganz genau beschreiben!

    Nunja - es ist eine 580 Zeilen Fingercam, die an eine Canon HV20 per AnalogVideo Eingang angeschlossen ist. Die HV20 selbst ist eine HD-Kamera, die bei externen Analogsignalen halt nur SD aufzeichnet. Sind aber Mini-DV-Bänder.

    Woher diese Störstreifen nun exakt kommen, weiss ich nicht. Sie treten nur auf, wenn das Motorrad Offroad unterwegs ist - auf Asphalt (und da habe ich es ausführlich getestet -sigh!) sind keine Streifen zu sehen - in der Mongolei ist aber eigentlich alles Offfroad ;)
    Die HV20 ist im Tankrucksack (der ruhigste Platz am Mopped) und die Fingercam am Sturzbügel.
    Gecaptured wurde mit SonyVegas - die Streifen sind aber schon auf dem Band (hab die Kamera mal analog an einen Fenseher angeschlossen).

    Die Fingercam bekam ihre 12V vom Motorrad, die HV20 lief mit Akku.
    Es könnte also auch evtl ein Aussetzer der Fingercam sein oder Störungen vom Bordnetz, aber dazu ist mir der Fehler irgendwie zu regelmässig vom Aussehen. Es ist ja auch immer exakt nur eine Zeile hinüber, was mir Hoffnung gibt, dass ich das einigermassen wegfiltern kann.


    Andreas

  • Ich bin mir fast sicher, dass Fizick einen passenden Filter gegen Kratzer hat... mal schauen, ob da ein "DeScratch" zu finden ist auf

    http://avisynth.org.ru/fizick.html
    __

    Aah - guckst du: http://avisynth.org.ru/descratch/descratch.html

    Wirkt aber gegen senkrechte Streifen. Also vielleicht so in AviSynth:

    PHP
    LoadPlugin("DeScratch.dll")
    AviSource("Motorradfahrt.avi")
    TurnRight()
    DeScratch() # hier auch mit vielen Parametern in der Klammer
    TurnLeft()

    Und dann mit den dutzend Parametern herumspielen.

    Möglicherweise muss auch interlaced gearbeitet werden, das habe ich nicht beachtet. Siehe auch sein Beispiel für:

    Script used for VHS example clip

  • Danke - mit dem DeScratch habe ich recht ansehnliche Ergebnisse erzielen können. Ist nicht perfekt, aber da die Videos ja eh in einer Foto/Filmshow verwurschtelt werden, sollte das so jetzt einigermassen nutzbar sein.

    Evtl schreibe ich mir aber auch einen eigenen Filter - sollte nicht so schwer sein (nachdem ich mal ein bischen im SDK gelesen habe), auch wenn mein letztes C++ Projekt nun schon 10 Jahre her ist. Die Erkennungsroutinen aus DeScratch finden zumindest jetzt zuverlässig die weissen Dots und dann muss ich eigentlich nur die komplette fehlerhafte Zeile mit der Zeile aus dem vorherigen Frame (oder Mittelwert aus Zeile davor und danach) austauschen ohne da grossartige Filter einzusetzen.

    Immerhin habe ich jetzt avisynth zu schätzen gelernt - war mir früher immer etwas zu kryptisch und vieles geht ja mit Vegas auch ;)

    Andreas

  • Dann erwarten wir also von dir eine Art "DeScratchTemporal"? ... Oh, ich glaube, mit etwas Zusammenarbeit mit unseren Filterprofis (vor allem die, die schon MaskTools und MVTools im Schlaf beherrschen - z.B. Didée oder scharfis_brain) schaffst du das auch ohne C++-Quelltexte, allein in AviSynth.

  • loadplugin("removedirts.dll") # Achung: die alte version von Removedirt besorgen!

    PHP
    avisource("blah.avi") # video laden
    bob() #bob-deinterlacen
    removedirt() #kratzer entfernen
    separatefields().selectevery(4,0,3).weave() #re-interlacen
  • Falls das "Streifenproblem" noch behandlungsbedürftig ist, hier gibt es einen vergleichbaren Fall mit Skript.

    Gruss

    Noch einen Abschlussbericht - damit es nicht zu unhöflich aussieht - ich habe einen neuen Rechner aufgesetzt und wenig Zeit gehabt die Wochen.

    Obiges Script läuft hervorragend, auch wenn das Einrichten etwas nervig war (erstmal alle richtigen DLLs finden) und dazu kam dann noch, dass ich jetzt Vista64 nutze und es erst mit der 64er Version von VirtualDub probiert hatte (klappt nicht - das beisst sich irgendwo mit AVISynth, gibt aber nur kryptische Fehlercodes aus). Alles auf 32bit geht...

    Danke nochmal allen für die Tips - jetzt rendern die AVIs erstmal ein paar Stunden.


    Andreas

  • welches der obigen scripte?

    das script von Ligh ist nicht für interlaced video geeignet.

    Mit separatefields/weave aber schon eher:

    PHP
    LoadPlugin("DeScratch.dll") 
    AviSource("Motorradfahrt.avi") 
    SeparateFields()
    TurnRight() 
    DeScratch() # hier auch mit vielen Parametern in der Klammer 
    TurnLeft() 
    Weave()

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!