AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi objekt aus grafik freistellen
Thema durchsuchen
Ansicht
Themen-Optionen

objekt aus grafik freistellen

Ein Thema von gi_networx · begonnen am 2. Feb 2006 · letzter Beitrag vom 20. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von gi_networx
gi_networx

Registriert seit: 2. Feb 2006
27 Beiträge
 
#1

objekt aus grafik freistellen

  Alt 2. Feb 2006, 02:50
Hallo Ihr da,

ich hab hier folgendes Problem:

Ich habe hier einige Bilder (JPG, aber kann ich ja notfalls auch in Bitmap umwandeln). Diese sehen z.B. so aus: Siehe Attachment

So, jetzt soll ich einen Algorithmus schreiben der über das Bild fliegt und mir den Hintergrund komplett in weiß umwandelt. Also die Fotos werden vor einer weißen Wand gemacht, aber die Aufnahme IST leider nicht 100% Weiß im Hintergrund.

Jetzt überleg ich schon ewig um auf einen Lösungsansatz zu kommen aber mir will partout nichts einfallen was die akzeptable Qualität bringen könnte. Der User soll so gut wie _garnicht_ in den Prozess eingreifen. Einfach nur das Bild auswählen und gut is.

Hat jemand eine Idee für einen Ansatz oder evtl einen Algorithmus in petto???

Viele Grüße

Michl
Miniaturansicht angehängter Grafiken
vorher_730.jpg  
  Mit Zitat antworten Zitat
rowkajjh

Registriert seit: 9. Jan 2006
38 Beiträge
 
#2

Re: objekt aus grafik freistellen

  Alt 2. Feb 2006, 08:05
Naja, der Hintergrund ist doch grau, also R~G~B. Desweiteren hast Du doch eine schöne Kante, die Dame hebt sich doch schön vom Hintergrund ab. Das solte eigtl. reichen.
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#3

Re: objekt aus grafik freistellen

  Alt 2. Feb 2006, 10:15
Hallo,

ich glaube nicht dass das so einfach geht.
Er muss eine ganze (ich nenns mal so) Farbbandbreite umwandeln.
Zunächst muss er dazu die Hintergrundfarbe bestimmen.Dann muss er alle relevanten Abweichungen dazu bestimmen und diese umwandeln.
Wie gesagt nicht trivial.

Rainer
  Mit Zitat antworten Zitat
Benutzerbild von zer00
zer00

Registriert seit: 7. Okt 2003
95 Beiträge
 
Delphi 2005 Professional
 
#4

Re: objekt aus grafik freistellen

  Alt 2. Feb 2006, 12:30
Ich glaube mit Photoshop geht das viel schneller.

grz zer00
sei kühn, sei immer kühn, sei nicht zu kühn
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#5

Re: objekt aus grafik freistellen

  Alt 2. Feb 2006, 12:36
Die HG-Farbe zu bestimmen ist schon das größere Problem, wenn es nicht der User machen soll.

BTW @zer00:
Das ist ja sinnlos. Er will es ja als Programm schreiben.

Das Freistellen muss - wie du sagst - mit gewisser Toleranz geschehen.
Dafür könnte sich in etwa sowas anbieten:

Delphi-Quellcode:
R := GetRValue(...);
G := ...;
B := ...;

MinR := R - Toleranz;
MinG := ...;
MinB := ...;

MaxR := R + Toleranz;
MaxG := ...;
MaxB := ...;

if (MinR < 0) then MinR := 0;
if ....;

if (MaxR > 255) then MaxR := 255;
if ....;

if ((R > MinR) AND (R < MaxR) AND (G > MinG) AND (G < MaxG) AND (B > MinB) AND (B < MinB)) then
begin
   // Farbe setzen
end;
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von zer00
zer00

Registriert seit: 7. Okt 2003
95 Beiträge
 
Delphi 2005 Professional
 
#6

Re: objekt aus grafik freistellen

  Alt 2. Feb 2006, 22:16
Ist mir auch klar, ist nur als Scherz gemeit.
Oder darf man in diesem Forum keine Scherze machen?

grz zer00
sei kühn, sei immer kühn, sei nicht zu kühn
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#7

Re: objekt aus grafik freistellen

  Alt 2. Feb 2006, 22:42
Das was du machen willst, nennt sich "Keyer", und bei sowas akzeptable Ergebnisse zu kriegen, ist keine einfache Sache. Selbst professionelle Lösungen (z.B. der Keyer "Keylight" in AfterEffects, oder der discreet keyer in "Combustion") bringen da ohne viel Nachbearbeitung von Hand oft nur sehr unbrauchbare Ergebnisse. Ein einfacher Keyer, der nur bestimmte Farbbereiche ausblendet, liefert meistens keine guten Ergebnisse. Bei deinem Beispielbild würde wohl nicht nur der graue Hintergrund verschwinden (bei genügend großer Toleranz), sondern gleichzeitig auch noch das helle Muster auf dem Kleidungsstück, die Highlights auf der Haut, etc.

Ich habe mal ein Beispielbild angehängt, das ich mit dem normalen "Color Keyer" von After Effects bearbeitet habe. Einmal mit Toleranz 15, dann Toleranz 30 und schließlich Toleranz 75 von der ursprünglich gewählten Farbe.

Du siehst, wie viele Bildbereiche tatsächlich in diesen Farbbereich fallen. Was du dir vorgenommen hast, ist quasi unmöglich. Selbst professionelle Lösungen scheitern oft an solchen Sachen, und wenn man es doch schafft, dann nur in Feinarbeit mit 100 verschiedenen Einstellmöglichkeiten. Einen Automatismus gibt es da nicht.
Miniaturansicht angehängter Grafiken
nachher_647.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: objekt aus grafik freistellen

  Alt 2. Feb 2006, 23:16
Es tut mir leid Oxmyx aber ich muss die wiedersprechen.

Ich schreibe grad meine Facharbeit über Bildsegmentierung.

Sowas können heute verdammt viele Programme.
Und bei weit komplizierteren Motiven.

Die zz. am weitesten entwickelten sind wohl
Siox (in Gimp) http://www.siox.org/

Und von Microsoft: Grabcut http://research.microsoft.com/vision...on/GrabCut.htm

Auch Photoshop hat mit ihrem Extrahieren Werkzueug ähnliches eingebaut.
Ebenso Corel Draw.
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat
Benutzerbild von gi_networx
gi_networx

Registriert seit: 2. Feb 2006
27 Beiträge
 
#9

Re: objekt aus grafik freistellen

  Alt 3. Feb 2006, 10:11
Hi Ihr,

danke erstmal für eure Antworten. Ich werd mir das alles mal durch den Kopf gehen lassen.

Diese Grabcut sieht gut aus, ich frag mich wie die das da machen...
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#10

Re: objekt aus grafik freistellen

  Alt 3. Feb 2006, 10:16
Zitat von gi_networx:
Diese Grabcut sieht gut aus, ich frag mich wie die das da machen...
In der aktuellen c't steht's

Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz