Beiträge von Erbse

    Danke für Deine Mühe.

    Bei etwa welcher Filmqualität ist es überhaupt sinnvoll, mit Delogo zu arbeiten? Reichen Mpeg2-Files, wie sie z. B. Hauppauge-TV-Karten (analog) liefern?
    Unkomprimierte Aufnahmen kriege ich hier nicht.

    Gruß
    Erbse

    Ich habe gestern noch mal die Masken neu gemacht und bin nach Anweisung vorgegangen. Beim 1. Maskensatz standen alle 4 Mask construction parameters auf Null.
    Bei Erstellung des 2. Maskensatzes muss ich den Alpha to repair-Regler bis ganz nach rechts schieben, damit das Logo verschwindet, wenn dabei der Repair radius af Null steht, aber nur etwas über die Mitte, wenn ich auch den Repair Radius verstelle. Habe es mit beiden Einstellungen versucht, scheint aber wohl keinen Unterschied zu machen, richtig? Der angehängte 2. Maskensatz ist mit Alpha-to-rapir ganz rechts und repair Radius auf Null.
    Spielen eigentlich die "Repair parameters" (Depth, Power, Pixel aspect) eine Rolle? Die habe ich bisher einfach so gelassen.

    Das bisherige Ergebnis ist jedenfalls so: Bei relativ monotonem Hintergrund ist das Logo weg, bei Strukturen bzw. etwas komplexeren Bildausschnitten sieht man den verwaschenen Logoumriss (Bildbeispiele im Zipfile) d.h. es ist in etwa wie bei Logoaway. Die Beispiele habe ich mit cmix=0.8 und Lmix=1 gemacht und vorher ein bisschen mit diesen beiden Parametern herumprobiert, aber kein besseres Ergebnis bekommen.
    Sind die Masken jetzt okay und kann ich davon ausgehen, dass es an der bescheidenQualität der Quelle liegt, dass das Ergebnis nicht besser ausfällt? Oder kann man noch etwas verbessern?

    Gruß Erbse

    OK,von diesem Ziel bin ich noch weit entfernt. Ich habe jetzt mal eine neue analyse.bmp gemacht und dabei ein paar weitere Tips aus dem Guide berücksichtigt, z. B. den schwarzen Lettersize-Rand oben grün gefärbt (hatte ich vorher nicht gemacht, was wahrscheinlich ziemlich blöd war). Das Ergebnis ist jetzt mit einem Satz Masken immer noch sehr schlecht, mit 2 Sätzen Masken viel besser als vorher, das Sat1-Logo ist aber in den meisten Szenen noch als "Geist" vorhanden, d.h. es ist ist schon sehr viel besser als mit Original-Logo.
    Ich hänge mal die Bitmaps an (alle zusammen gezippt, bmps gehen im Forum anscheinend nicht - hoffe, das ist ok so).

    Gruß
    Erbse

    Das habe ich vorhin vergessen zu fragen:

    Re 2.)

    - Analyse durchlaufen lassen
    - alpha to repair -> 0
    - alle Masken speichern: "sat1_deblend.bmp", "sat1_alpha.bmp", usw.
    - alpha to repair --> gerade so hoch wie nötig einstellen, dass Problembereiche verwischt werden
    - jetzt nochmal alle Masken speichern: "sat1_deblend_c.bmp", "sat1_alpha_c.bmp", usw.

    Was ist mit dem Repair Radius? Sollte der nicht für eine oder beide Masken verändert werden?

    Erbse

    Didée

    Danke für die Anleitung :) Ich werde das mal heute abend ausprobieren, wenn ich mehr Zeit habe, und vorher noch neue Masken erstellen. JPGs hatte ich hochgeladen, weil ich dachte, die BMPs seien zu groß.

    Ja, die Quelle ist sicher nicht optimal, OTR liefert nun mal gleich divx-Dateien in dieser Auflösung. Allerdings habe ich mal mit eigenen Aufnahmen vom VDR experimentiert (vorher als Mpeg2 abgespeichert) und das war nicht besser. Wir haben hier sowieso nur Analog-TV, nix digital.

    Viele Grüße
    Erbse

    @Lugia

    Zitat


    Zu 1. bei mir war es auch so, das wenn ich alles auf 0 stelle, wie es auch im tutorial steht, das logo voll sichtbar war und ich es erst ganz weit nach rechts schieben musste, damit es verschwindet oder zumindest überblendet wird.

    Die Avisynth einstellungen sind aber deutlich besser

    Was meinst Du damit? Die Avisyntheinstellungen, bevor der Alpha-Regler verschoben wird?

    Und welche Methode verwendest Du denn jetzt?


    Danke!
    Erbse

    So, jetzt habe ich meine ersten Versuche mit dem Skript gemacht.

    Von den Ergebnissen bin ich ein wenig enttäuscht: Es sieht ein bisschen besser aus als mit Logoaway, aber nicht viel. Ich nehme mal an, dass ich noch irgendwas falsch mache - oder erwarte ich zu viel?
    Bei relativ monotonen und detailarmen Hintergründen ist alles wunderbar, zwischendurch sieht man schon, dass da ein Logo war. Ich hänge mal zwei Beispiele an, dazu mein Analyse.bmp. Ausgangsmaterial war ein Film mit dem aktuellen Sat1-Logo (Xvid-kodiert, vom TV Onlinerecorder), für die Analyse habe ich rund 5000 Frames genommen. Als Delogo-Skript habe ich nun das aus #250 in diesem Thread genommen (übrigens wäre es nicht schlecht, wenn man dort dazuschreiben könnte, dass man das MaskTools-Plugin dafür braucht). Das Sat1-Logo ist doch eigentlich schön transparent, sollte da nicht mehr gehen?

    Fragen:

    1. Nachdem die Analyse gelaufen ist, soll man "Alpha to repair" und "Deblend falloff" auf Null stellen. Wenn ich das mache, sehe ich aber praktisch das originale Logo ohne Veränderung. Erst wenn ich "Alpha to repair" ganz weit nach rechts schiebe und "repair radius" auch ziemlich weit, verschwindet das Logo und wenn ich dann die Masken abspeichere, erhalte ich das oben beschriebene Ergebnis. Woran kann es liegen? Ich habe mir die Anmerkungen zu Fehlerquellen durchgelesen, aber sollte man nicht wenigstens eine kleine Verbesserung schon dann sehen, wenn die Regler auf Null stehen?

    2. Den Teil mit den zwei Masken-Sets habe ich leider nicht richtig verstanden. Kann mir bitte jemand Punkt für Punkt (Telegrammstil reicht) erklären, wie ich dafür nach der Analyse vorgehen muss, welche Regler ich wann verschieben muss und woher ich weiß, welche Werte ich dann in etwa bei lmix und cmix nehmen muss? Ich habe es zwar mal versucht und es hat auch geklappt, aber mangels Durchblick war das Ergebnis nicht besser als mit nur einem Maskenset.

    Danke schon mal!

    Gruß Erbse

    Da haben sich gerade unsere Antworten überschnitten :)

    Allerdings habe ich das falsche Minus nicht nur gelöscht, sondern zum richtigen Minus gemacht, so war es hoffentlich richtig? Scheint jedenfalls zu funktionieren :)

    Erbse

    Hallo,

    habe den Fehler gefunden. Anscheinend ist im pdf-File ein falsches Minuszeichen (Gedankenstrich statt Minuszeichen), ich habe das korrigiert und jetzt funktioniert es.

    Danke!

    Gruß
    Erbse

    Wenn ich das mache, erhalte ich beim Laden des Skripts diese Fehlermeldung:

    Avisynth open failure: I don't know what "-" means
    (delogo_filter.avs, line 9)
    (delogo_filter.avs, line 41)

    Hier ist mal zur Sicherheit noch delogo_filter.avs:
    --------------
    function VD_DeLogo(clip clip, bool "on_frames", string "range", string "file_deblend", string "file_alpha",
    \ string "file_color", string "file_repair", float "depth", float "power", int "par_X", int "par_Y", bool "interlaced")
    {
    LoadVirtualdubPlugin("C:\Dokumente und Einstellungen\Karin\Desktop\VirtualDub\plugins\delogo.vdf", "_VD_DeLogo")
    X = round(10*depth)
    Y = round(10*power)
    # theoretically: z = 100*log10(par_X/par_Y), as approximation I took a minimax-approximation (calculated with Maple):
    v = - 48.96556825 + 63.18825967*par_X - 16.00966389*par_X*par_X + 2.473556539*par_X*par_X*par_X
    \ – .2133268695*par_X*par_X*par_X*par_X
    \ + .009456579673*par_X*par_X*par_X*par_X*par_X - .0001675297934*par_X*par_X*par_X*par_X*par_X*par_X
    w = - 48.96556825 + 63.18825967*par_X - 16.00966389*par_X*par_X + 2.473556539*par_X*par_X*par_X
    \ – .2133268695*par_X*par_X*par_X*par_X
    \ + .009456579673*par_X*par_X*par_X*par_X*par_X - .0001675297934*par_X*par_X*par_X*par_X*par_X*par_X
    z = round(v) - round(w)
    return clip._VD_DeLogo(default(on_frames,false)?1:0, default(range,""), default(file_deblend,""), default(file_alpha,""),
    \ default(file_color,""), default(file_repair,""), default(X,15), default(Y,40), default(interlaced,false)?1:0, z)
    }
    ### ### ###

    function delogo( clip clp, int Lwidth, int Lheight, string loc, string name,
    \ float "Cmix", float "Lmix", string "name2", bool "i", bool "PP",float "amount")
    {
    name2=default(name2,"")
    PP=default(PP,false)
    amount=default(amount,1.0)
    logomask=(name2=="")?clp:imagereader(name2).loop().trim(0,framecount(clp)).converttoyv12(matrix="PC.601")
    # return logomask.histogram(mode="levels")
    Lmix=default(Lmix,0.0)
    Cmix=default(Cmix,0.0)
    i=default(i,false)
    ox=clp.width
    oy=clp.height
    x1 = (LeftStr(loc,1)=="L") ? 0 : ox-Lwidth
    y1 = (RightStr(loc,1)=="O") ? 0 : oy-Lheight
    logo = clp.crop(x1,y1,Lwidth,Lheight)
    row = (x1==0) ? (y1==0) ? clp.crop(Lwidth,0,-0,Lheight) : clp.crop(Lwidth,oy-Lheight,-0,-0)
    \ : (y1==0) ? clp.crop(0,0,x1,Lheight) : clp.crop(0,oy-Lheight,x1,-0)
    rest = (y1==0) ? clp.crop(0,Lheight,-0,-0): clp.crop(0,0,-0,oy-Lheight)
    ConvertToRGB(logo)
    # log1=VD_DeLogo(false, "", "ana2.bmp", "alpha-G3.bmp", "color-G3.bmp", "repair.bmp", 1.5, 3.0, 1, 1, i).ConvertToYV12()
    log1=VD_DeLogo(false, "", name+"_deblend.bmp", name+"_alpha.bmp", name+"_color.bmp", name+"_repair.bmp", 1.5, 3.0, 1, 1, i).ConvertToYV12()
    log2 = (Cmix==0.0 && Lmix==0.0)
    \ ? log1 : VD_DeLogo(false, "", name+"_deblend.bmp", name+"_alpha.bmp", name+"_color.bmp", name+"_repair_c.bmp", 2.5, 3.0, 1, 1, i).ConvertToYV12()
    LL=string(int(round(Lmix)))
    LL1=string(int(round(Lmix*100.0)))
    # log1.DEdgemask(0,255,0,255,"1 1 1 1 0 1 1 1 1",U=2,V=2)
    # log1.yv12convolution("1 8 28 56 76 56 28 8 1","1 8 28 56 76 56 28 8 1")
    PP ? (i ? log1.yv12convolution("1 8 28 56 76 56 28 8 1","1 0 28 0 76 0 28 0 1")
    \ : log1.yv12convolution("1 8 28 56 76 56 28 8 1","1 8 28 56 76 56 28 8 1") )
    \ : log1
    # log1.yv12convolution("1 8 28 56 76 56 28 8 1","1 0 6 0 15 0 20 0 15 0 6 0 1")
    log1=Lmix<=1.0?log1:yv12lutxy(last,log1,yexpr="x y "+LL+" + > x "+LL+" - x y "+LL+" - < x "+LL+" + y ? ?",U=2,V=2)

    Cmix==0.0 ? log1 : MergeChroma(log1,log2,Cmix)
    Lmix==0.0 ? last
    \: Lmix >1.0 ? yv12lutxy(last,log2,yexpr="x y "+LL+" + > x "+LL+" - x y "+LL+" - < x "+LL+" + y ? ?",U=2,V=2)
    \: yv12lutxy(last,log2,yexpr="x 100 "+LL1+" - * y "+LL1+" * + 100 /",U=2,V=2)
    # \: MergeLuma(last,log2,Lmix) ## -->"Access violation" ... yippieh ... müsse mache yv12lutxy ...

    # PP?yv12convolution("1 8 28 56 76 56 28 8 1","1 0 28 0 76 0 28 0 1",U=2,V=2):last
    PP?(i?separatefields.Removegrain(2).weave:removegrain(2)):last
    PP?temporalsoften(2,11,11,23,2).AddGrain(5,.0,.0):last
    # PP?repair(last.sharpen(1),last,mode=1,modeU=3):last
    name2==""?last:maskedmerge(logo,last,logomask.FitY2UV(),Y=3,U=3,V=3)

    row2 = (x1==0) ? stackhorizontal(last,row) : stackhorizontal(row,last)
    y1==0 ? stackvertical( row2,rest) : stackvertical( rest,row2)
    return last
    }

    Function ServeLogo( clip clp, int Lwidth, int Lheight, string loc, int "SnipSize", int "avg" )
    { SnipSize = default( SnipSize, 56 )
    avg = default( avg, 3 )
    x1 = (LeftStr(loc,1)=="L") ? 0 : clp.width-Lwidth
    y1 = (RightStr(loc,1)=="O") ? 0 : clp.height-Lheight
    clp.crop(x1,y1,Lwidth,Lheight)
    SelectRangeEvery( SnipSize, 1 )
    return TemporalSoften( avg,255,255,255,2 )
    }

    Das habe ich wie gesagt aus dem Pdf-Dokument übernommen und nur den Pfad zu delogo.vdf abgeändert.

    Erbse

    Hallo,

    Ich muss den Thread mal ausgraben, da ich mit Didées Guide ein Problem habe.

    Vorweg, ich bin in Sachen avisynth absoluter Neuling, bitte also um Nachsicht.

    Ich habe nach dem Pdf-Tutorial (Seite 1 heruntergeladen) eine Analyse.bmp erstellt (der Logo-Schnipsel war aus der Ecke links oben herausgeschnitten, 80 Pixel breit und 92 Pixel lang) und damit in VD auch die Masken hinbekommen. Dann habe ich das leicht modifizierte Skript aus dem Guide als delogo_filter.avs abgespeichert (nur den Pfad zu delogo.vdf abgeändert). Dann folgendes avs-Skript erstellt:
    ---------------
    AVIsource("z:\video\filme\film.avi")

    Import("C:\Dokumente und Einstellungen\xxxxx\Desktop\delogo~tmp3\delogo_filter.avs")

    ServeLogo( 80, 92, "LO", 56, 3 )

    DeLogo( 80, 92, "LO", "sat1", Cmix=0.0, Lmix=0.0)

    ---------

    Wenn ich nun dieses Skript in Virtualdub lade, erhalte ich folgende Fehlermeldung:

    Avisynth openfailure: crop: destination width is 0 or less

    Ich komme nicht dahinter - was mache ich falsch?

    Bin für jede Hilfe dankbar!

    Gruß
    Erbse