TV Bluebox am PC Realisieren

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

TV Bluebox am PC Realisieren

Beitrag von Joel »

Hi,

Die Tagesschau z.B. macht ihre Hintergründe ja, indem die Moderatoren hinter Blueboxen stehen. Gibt es Freeware für den PC, die diesen Farbton in einen Hintergrund ersetzen?

Wenn nien, wäre sowas mit PB möglich (gibt es Ansätze)?
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
teejex
Beiträge: 44
Registriert: 30.03.2009 17:55
Computerausstattung: PB4.40 Pro
C++: MinGW :)
Java: Eclipse :)
Notepad++ :)
--
Notebook/eher Mobile Workstation :D : Q9800 - nVidia - 4GB Ram - 500GB HD

Beitrag von teejex »

Hi

ob es solche Freeware Programme gibt,
weiss ich nicht.

Aber es ist bestimmt mit PB möglich:

Als erstes sollte man per

Code: Alles auswählen

Farbe = Point(x, y)
herausfinden, wo diese Bluebox ist.
Hat man die Koordinaten der Bluebox, muss man nur die Farbe des Pixels im einzufügenden Bild herausfischen(Point(x,y)) und per Plot auf das Gesamtbild draufpixeln.

Werd mich gleich mal dran versuchen... xD kp ob was draus wird

MfG
Jan

Edit: ob es Ansätze oder Freeware Programme gibt, findest du mit der Suche bzw. einer Suchmaschinen(MS Bing,google usw.)[/url]
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Ok, das wäre Super, also Freeware gibt es da scheinbar nicht für. Aber für ansätze, die Blau in Bilder übersetzen udnd en Rest über den Hinetrgrund überlagern, wäre ich dankbar.
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

frag mal Zeha, der hat zumindest ne software gehabt um zwei filmsequenzen übereinander zu rendern...
Als erstes sollte man per
Farbe = Point(x, y)
herausfinden, wo diese Bluebox ist.
yo, mahlzeit!

nen Drawing-Zugriff für life-Bildbearbeitung?

und den Teleprompter meißelt jemand in stein? das wär nämlich auch nicht langsamer...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
teejex
Beiträge: 44
Registriert: 30.03.2009 17:55
Computerausstattung: PB4.40 Pro
C++: MinGW :)
Java: Eclipse :)
Notepad++ :)
--
Notebook/eher Mobile Workstation :D : Q9800 - nVidia - 4GB Ram - 500GB HD

Beitrag von teejex »

Hi
Kaeru Gaman hat geschrieben: und den Teleprompter meißelt jemand in stein?
Scheint nen flottes Kerlchen zu sein ;-)


Bitte nicht über den Code lachen - ich Arbeite eher selten mit PB
Er funktioniert, und das ist wohl die Hauptsache ;-)
Zur verfeinerung sollte man evtl. noch schauen, ob das nicht nur ein einzelner Pixel war, der die gleiche Farbe hatte wie die Bluebox, sondern wirklich eine ganze Ansammlung dieser Farbe.
Ist die obere linke Ecke verdeckt, funktioniert das ganze natürlich auch nicht mehr ... aber du(Joel) wolltest ja auch nur einen Ansatz - hier ist er xD ->

Edit: Bsp Fotos werden gleich hochgeladen und hier eingefügt....
Bild+Bild-->Bild

Code: Alles auswählen

UsePNGImageDecoder()
UsePNGImageEncoder()

#rTol=30
#gTol=30
#bTol=30

; Die Werte, die ein Pixel haben muss, damit er für einen Teil der Bluebox gehalten wird:
#rMin=0-#rTol
#gMin=0-#gTol
#bMin=255-#bTol

; höhe/breite des Bildes
imgW=200
imgH=200

;höhe/breite des einzufügenden Bildes
insW=179
insH=79

; position der bluebox, wird später errechnet
posOfInsertX=-1;
posOfInsertY=-1;

img = CatchImage(#PB_Any, ?image)
ins = CatchImage(#PB_Any, ?insert)


ins_out = ImageOutput(ins)
Dim insColors(insW,insH) ; farbenarray für insert erstellen

StartDrawing(ins_out)
  
  For x=0 To insW
    For y=0 To insH
      insColors(x,y)=Point(x,y);farbwerte im array speichern
    Next
  Next
StopDrawing()

img_out = ImageOutput(img)
StartDrawing(img_out)
  For x=0 To imgW 
    For y=0 To imgH
      c=Point(x,y) ; farbe des punktes holen und in c (color) speichern
      ; dann per Red(c),Green(c);Blue(c) die einzelnen Farbwerte auslesen und schauen, ob sie im akzeptablen bereich liegen:

      If  Red(c)>=#rMin    And Red(c)<=#rMin+#rTol And Green(c)>=#gMin  And Green(c)<=#gMin+#gTol And Blue(c)>=#bMin  And Blue(c)<=#bMin+#bTol
        posOfInsertX=x;
        posOfInsertY=y;
        Break ; schleife verlassen
      EndIf
    Next
  
    If(posOfInsertX<>-1)
      Break ; schleife verlassen
    EndIf
  Next  
  
  Debug "Insert Pos:"
  Debug posOfInsertX
  Debug posOfInsertY
  
  
  For x=0 To insW
    For y=0 To insH
      plotX=x+posOfInsertX
      plotY=y+posOfInsertY
      If(plotX>0 And plotX<imgW   And   plotY>0 And plotY<imgH)
        c=Point(plotX,plotY) ; farbe des punktes holen und in c (color) speichern
        ; dann per Red(c),Green(c);Blue(c) die einzelnen Farbwerte auslesen und schauen, ob sie im akzeptablen bereich liegen:
  
        If  Red(c)>=#rMin    And Red(c)<=#rMin+#rTol And Green(c)>=#gMin  And Green(c)<=#gMin+#gTol And Blue(c)>=#bMin  And Blue(c)<=#bMin+#bTol
          Plot(plotX,plotY,insColors(x,y)) ; auf das image mit bluebox plotten
        EndIf
      EndIf
    Next
  Next
  
  Ergebnis = SaveImage(img, "C:\Users\admin\Desktop\IMAGE__.PNG" , #PB_ImagePlugin_PNG)
  
StopDrawing()

End

DataSection
  image: IncludeBinary "image.png"
  insert: IncludeBinary "insert.png"
  
EndDataSection
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Ok, vielen Dank!!!! Werde den Code "Analysieren" :D

Melde mich später wieder!
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Ob es dafür Freeware gibt, bezweifle ich. Aber ich wette, mit Adobe Premiere kann man das machen. Und einem ähnlichen Apple Pendant. Die sind ja so die professionellsten Programme dafür (wohl aber auch zwei der teuersten).

Ansonsten... Selber coden, ich würde lieber gleich einen Ansatz mit 3D Beschleunigung versuchen, Stichwort Blending Modes. Oder eben alles manuell im Speicher imkrempeln, wie auch immer.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
teejex
Beiträge: 44
Registriert: 30.03.2009 17:55
Computerausstattung: PB4.40 Pro
C++: MinGW :)
Java: Eclipse :)
Notepad++ :)
--
Notebook/eher Mobile Workstation :D : Q9800 - nVidia - 4GB Ram - 500GB HD

Beitrag von teejex »

Es gibt auch die Möglichkeit, das gleiche mit z.B. Gimp zu machen:

Man läd das Hauptbild, markiert dort alle blauen Pixel, und löscht die dann per Entfernen (dafor sollte man dem Bild einen Alpha-Kanal gegönnt haben)

Als nächstes erstellt man eine neue Ebene, in diese Packt man das Bild, das eingefügt werden soll - verschiebt es an die richtige Stelle, und schwupp die wupp xD guckt es an den betreffenden Stellen durch, also da, wo vorher die Bluebox war.

Die Funktion nennt sich "Nach Farbe auswählen"(Eine Hand die auf Blau/Rot/Grün zeigt)

MfG
Jan
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Ja achwas. /:->

Aber wenn ich mich nicht irre, geht es hier wohl um Echtzeitvideobearbeitung. Und kommst du mit Gimp nicht weit.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Beitrag von TomS »

Vermilion hat geschrieben:Ja achwas. /:->

Aber wenn ich mich nicht irre, geht es hier wohl um Echtzeitvideobearbeitung. Und kommst du mit Gimp nicht weit.
Dass es echtzeit sein muss, hat er mit keinem Wort erwähnt. Aber dann helfen auch Adobe Premiere und Konsorten nicht weiter.
Antworten