php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.10.2010, 23:01  
Benutzer
 
Registriert seit: 13.10.2008
Beiträge: 70
root66 befindet sich auf einem aufstrebenden Ast
Standard Dominierende Farben aus Bild extrahieren

Hallo,

ich möchte aus einem Bild die dominierenden Farben ermitteln. Dazu gehe ich Pixel für Pixel durch das Bild, ermittle die Pixelfarbe und erstelle eine Statistik (Counter).

Das ergibt dann aber z.B. verschiedenste Rot-Töne, die unterschiedlich oft vertreten sind. Ich möchte Farb-Abstufungen aber zu vorgegebenen RGB-Farbwerten (Rot, Grün, Blau, Gelb, Weiss, Schwarz, Grau usw.) zusammenfassen.

Wie kann ich also im zweiten Schritt per Distanz-Berechnung ermitteln, ob ein RGB Wert z.B. eher rot, schwarz, oder weiss ist?

VG,
root66
root66 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.10.2010, 02:47  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hallo,

ist dir der RGB-Farbraum bekannt - dann kannst du doch einfach eine Zuordnungstabelle bzw. Bereichszuordnung erstellen (Teilen und Runden), oder?

Dabei musst du vermutlich die Grenzen nach Sichtung vornehmen.

Beispiel: FF0000 ist genau rot, dann wird FE0000 auch rot sein genauso wie EF0000, FF0101, .. etc. Diese Bereiche musst du definieren, dafuer ist vermutlich eine Hex -> Dezimalumrechnung hilfreich.

Ein Grundverstaendnis zu RGB solltest du natuerlich haben.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 28.10.2010, 14:13  
Benutzer
 
Registriert seit: 13.10.2008
Beiträge: 70
root66 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Chriz Beitrag anzeigen
Hallo,

ist dir der RGB-Farbraum bekannt - dann kannst du doch einfach eine Zuordnungstabelle bzw. Bereichszuordnung erstellen (Teilen und Runden), oder?

Dabei musst du vermutlich die Grenzen nach Sichtung vornehmen.

Beispiel: FF0000 ist genau rot, dann wird FE0000 auch rot sein genauso wie EF0000, FF0101, .. etc. Diese Bereiche musst du definieren, dafuer ist vermutlich eine Hex -> Dezimalumrechnung hilfreich.

Ein Grundverstaendnis zu RGB solltest du natuerlich haben.
Das ist doch viel zu aufwändig, weil ich jeden RGB-Wert sichten und der reduzierten Farbtabelle zuordnen muß.

Ich berechne jetzt den euklidschen Abstand zwischen zwei RGB Werten.
root66 ist offline   Mit Zitat antworten
Alt 28.10.2010, 14:56  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Was ist daran aufwändig? Wie sieht dein Algorithmus denn aus?
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 28.10.2010, 14:58  
Erfahrener Benutzer
 
Registriert seit: 04.08.2010
Beiträge: 287
PHP-Kenntnisse:
Fortgeschritten
zwutz wird schon bald berühmt werden
Standard

Zitat:
Zitat von Chriz Beitrag anzeigen
Beispiel: FF0000 ist genau rot, dann wird FE0000 auch rot sein genauso wie EF0000, FF0101, .. etc. Diese Bereiche musst du definieren, dafuer ist vermutlich eine Hex -> Dezimalumrechnung hilfreich.
für sowas muss man die Farbe nicht kennen. Die ist ja egal, solange sie dominiert

Es kommt ja auch aufs Verhältnis drauf an.

Ich würd bei sowas einfach reihum die Farben durchgehen und jedesmal, wenn der Abstand eine gewisse Schwelle zu den bisherigen gefundenen überschreitet, einen neuen "Haufen" bilden.

Am Schluss hat man dann mehrere Haufen mit jeweils ähnlichen Farbtönen. Dann solange die größten Haufen zusammen suchen, bis man wieder eine gewisse Schwelle (mindestens 50% der Anzahl aller Pixel, sonst machts ja keinen Sinn) überschritten hat und daraus dann die Durchschnittsfarbe ermitteln

Wobei man da sicherlich viel Feintuning machen kann. Gerade die Schwellwerte zu Beginn und sollte man je nach Bedarf anpassen. Evtl könnte man das auch dynamisch zur Laufzeit anpassen, wenn man zu viele kleine oder zu wenig große Haufen bekommt
zwutz ist offline   Mit Zitat antworten
Alt 28.10.2010, 15:04  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Ich klink mich aus, da habt ihr mehr Ahnung
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 28.10.2010, 16:35  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Rechne die RGB Werte in den HSV Farbraum um, somit erhälst du den Farbton, die Helligkeit und die Sättigung. Damit ist es kein Problem den Dominaten Farbton zu errechnen und/oder ob das Bild eher düster oder lichter ist.
erc ist offline   Mit Zitat antworten
Alt 06.12.2010, 17:17  
Erfahrener Benutzer
 
Benutzerbild von bitsnack
 
Registriert seit: 01.08.2010
Beiträge: 352
PHP-Kenntnisse:
Fortgeschritten
bitsnack befindet sich auf einem aufstrebenden Ast
bitsnack eine Nachricht über ICQ schicken bitsnack eine Nachricht über MSN schicken bitsnack eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von erc Beitrag anzeigen
Rechne die RGB Werte in den HSV Farbraum um
Und genau dafür habe ich eine kleine Klasse zusammengestellt: http://github.com/bitsnack/ColorspaceConverter
Sie noch einige Verbesserungen, funktioniert aber schon ganz gut.
bitsnack ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Bild ausgeben solange das Script läuft favo PHP-Fortgeschrittene 6 17.09.2010 13:34
[Erledigt] Bild erstellen, speichern und gespeichertes Bild anzeigen Garog PHP Tipps 2009 26 11.07.2010 18:01
Bild durchsuchen Martimor PHP-Fortgeschrittene 3 14.01.2010 12:09
[Erledigt] bild wird nicht gespeichert, finde fehler nicht Kay654 PHP Tipps 2009 4 24.12.2009 07:52
Bildeffekte berechnen (Bild in den Hintergrund anschregen) Frank PHP-Fortgeschrittene 2 28.11.2009 02:20
Bild in enuem Fenster öffnen? K3HLIM JavaScript, Ajax und mehr 6 10.04.2009 20:43
[Erledigt] Bild auf Bild anzeigen bei x/y Screeze JavaScript, Ajax und mehr 2 19.01.2009 19:40
[Erledigt] Bild anzeigen über $name t-stude Datenbanken 8 11.11.2008 15:34
[Erledigt] Bild verändert sich auf Klick Script errox JavaScript, Ajax und mehr 1 21.10.2008 20:51
Transparentes Bild über Bild legen *update gelöst* Broadcast PHP-Fortgeschrittene 11 04.02.2008 15:27
RGB-Farben miteinander vergleichen, Farben aus Bild filtern scraddy PHP Tipps 2006 10 31.10.2006 10:16
[Erledigt] Bild aus Datei in Bild einfügen PHP Tipps 2005-2 1 07.08.2005 23:36
[PHP«Image] Bild in ein anderes Bild einsetzen PHP Tipps 2005-2 4 07.08.2005 19:39
Bild größe hat prob mit umbenennung. JEGO PHP Tipps 2004 1 08.07.2004 16:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
dominierende farben, farben aus bild extrahieren, http://www.php.de/php-fortgeschrittene/73310-dominierende-farben-aus-bild-extrahieren.html, farben aus bildern extrahieren, dominierende farbe, farbe aus bild extrahieren, php farbe eines bildes, bild farben extrahieren, php farbwert ermitteln, farben extrahieren, was sind dominierende farben, farbnähe bestimmen, php farbe von bildern, farben aus bild, php farbe aus bild, bild farbe extrahieren, javascript farbe aus bild, dominierende farbtöne, dominierende farbe aus bild, farben aus foto extrahieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:12 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum