php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.08.2011, 23:26  
Neuer Benutzer
 
Registriert seit: 09.08.2011
Beiträge: 5
PHP-Kenntnisse:
Fortgeschritten
klaus24 befindet sich auf einem aufstrebenden Ast
Standard Farben aus Bildern ermitteln und sortieren?

Hallo

Ich möchte gern die Google Bilder Funktion "Sortieren nach Farben" nachbauen.
Ich benötige in Grunde 2 Funktionen

Finde die Hauptfarbe eines Bildes

Und

Es gibt eine vorgegebene Liste an Farben(10 Stück), und ich möchte für jede Farbe gern wissen, ob sie in einen Bild enthalten ist

Dabei ist aber Wichtig, das eine Farbe z.b. Blau sein kann, also #0000ff.
Doch natürlich sollte auch ein blau wie #2233cc auch noch durchgehen.

Ich habe mir da mal Gedanken zu gemacht wie man das machen könnte

Meine Idee sah vor, gehe ein Bild Pixel für Pixel durch, schaue nach der jeweiligen Farbe und gucke, ob diese in Tolleranzbereich der Vorgabefarbe ist,
Wenn ja, nehme die entfernung bis zur Vorgabefarbe und nimm das Ergebnis als eine art Punktesystem.

Dies sollte mir dann eigentlich sagen, je höher die Punktzahl desto näher ist die Farbe (die häufig im bild vorkommt) an meiner Vorgabe.

Diese 10 Ergebisse bei 10 Farben würde ich dann in der DB mit speichern und kann bei einen select danach sortieren.

Doch ob das so der richtige weg ist?

Hat vielleicht jemmand eine Idee wie man das grundsätzlich machen kann?

Oder hat viellicht sogar jemmand eine Lösung?
klaus24 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.08.2011, 23:41  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich würde einen Durchschnittswert ermitteln.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 10.08.2011, 00:31  
Neuer Benutzer
 
Registriert seit: 09.08.2011
Beiträge: 5
PHP-Kenntnisse:
Fortgeschritten
klaus24 befindet sich auf einem aufstrebenden Ast
Standard

und wie könnte ich das machen?

Hast du da vielleicht eine idee oder ansatz oder vielleicht sogar einen code?
klaus24 ist offline   Mit Zitat antworten
Alt 10.08.2011, 01:04  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

Du hast doch bereits Referenzfarben definiert. Du gehst jeden Pixel des Bildes durch und sortierst diesen dann einem der Referenzfarben zu. Immer, wenn die Referenzfarbe zugeordnet wird, wird der Zähler für diese Farbe um eins erhöht. Für ein Bild hast du dann nach dem Vorgang dann folgendes Array:

PHP-Code:
array(
   
'blau' => 601,
   
'gruen' => 9519,
   
'cyan' => 53,
   
'rot' => 516,
   
'gelb' => 1055,
   
'weiss' => 1201,
   
'orange' => 955,
   
'mangenta' => 90,
   
'schwarz' => 349,
); 
Der Rest sollte ein Kinderspiel sein. Die Schwierigkeit, die ich hier sehe, ist, die Pixelfarbe einer deiner zehn Referenzfarben zuzuordnen (ist #eecc55 gelb oder orange? etc)
__________________
dsentker ist offline   Mit Zitat antworten
Alt 10.08.2011, 01:16  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Wie gesagt, Pixel für Pixel ist doch Unsinn. Da braucht man sich nur das Rauschen eines Bildes ansehen. Eine Idee wäre vielleicht:

1. Bild mit blur-Filter behandeln. Das erreicht, dass zusammenhängende Pixel miteinander verrechnet und reduziert werden
1a. ggf. hilft auch Skalieren
2. Bild im Raster abtasten. Pixelweise ist dabei übertrieben
3. Farben addieren und Summe durch Anzahl der Abtastungen dividieren. Vermutlich müsste man das per Farbkanal tun. Ob das sinnvoll ist, muss man ausprobieren.

Am Schluss hat man eine (!) Farbe. Und die kann man dann einer oder mehreren Referenzfarben zuordnen.

Zitat:
oder vielleicht sogar einen code?
Empfinde ich ehrlich gesagt schon wieder als Beleidigung, danach zu fragen, bevor Du auch nur irgendwas versucht hast.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 10.08.2011, 03:10  
Erfahrener Benutzer
 
Benutzerbild von DrDreistein
 
Registriert seit: 23.03.2011
Beiträge: 134
PHP-Kenntnisse:
Anfänger
DrDreistein befindet sich auf einem aufstrebenden Ast
Standard

Farbtöne sortieren hatten wir schon mal im Offtopic:
http://www.php.de/off-topic-diskussi...sortieren.html (Farben nach Farbtönen sortieren)

Hoffe es hilft dir weiter bzw. hoffe das es überhaupt hier rein passt
__________________
Ein Rudel agressiver Wölfe nennt man auch Wolfgang.
Alles, was das PHP-Herz begehrt - Staticfloat

Geändert von DrDreistein (10.08.2011 um 03:27 Uhr).
DrDreistein ist offline   Mit Zitat antworten
Alt 10.08.2011, 04:24  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Nicht wirklich.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 10.08.2011, 08:50  
Erfahrener Benutzer
 
Registriert seit: 01.06.2011
Beiträge: 391
PHP-Kenntnisse:
Anfänger
achtelpetit befindet sich auf einem aufstrebenden Ast
Standard

Du könntest probieren, das Bild zuerst auf eine extrem grobe Auflösung umzurechen; etwa aus 800 x 600 Pixel
8 x 6 Pixel. Im nächsten Schritt dann Pixel für Pixel messen.
Der Farbeindruck ändert sich nämlich nicht, wenn die Auflösung reduziert wird, weil ja die Bildbearbeitung schon den Durchschnittswert von mehreren Pixeln bildet.
Vielleicht reicht sogar die Reduzierung auf 1 Pixel?
achtelpetit ist offline   Mit Zitat antworten
Alt 10.08.2011, 08:53  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 260
PHP-Kenntnisse:
Fortgeschritten
lcrash wird schon bald berühmt werden
Standard

Zwei Ideen hätte ich:
  • einfach diese Werte für jede Farbe (RGB) aufsummieren und durch die Anzahl der Pixel teilen und dann danach sortieren
  • Durschnitts-RGB-Wert nach HSV/HSL konvertieren und dann nach Lightness sortieren
lcrash ist offline   Mit Zitat antworten
Alt 10.08.2011, 09:10  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.143
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Zitat:
Zitat von klaus24 Beitrag anzeigen
Finde die Hauptfarbe eines Bildes
Ev. hilft das irgendwie...

Zitat:
Extracts the most common colors used in images
http://www.phpclasses.org/package/33...in-images.html

LG
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl 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
Farben nach Farbtönen sortieren hts Off-Topic Diskussionen 18 24.06.2011 14:34
Benutzerdefiniertes Sortieren gaxx PHP Einsteiger 12 29.05.2011 17:39
Tabellenausgabe sortieren mit Dropdown liste ahunzs PHP Einsteiger 10 23.05.2011 15:33
[Erledigt] Upload: Dateigröße VOR Start des Uploads ermitteln tobobant JavaScript, Ajax und mehr 9 18.12.2010 20:00
[Erledigt] Textdatenbank zeilenweise alphabetisch sortieren - Drop Down Menü alphabet UdoDirk PHP Tipps 2010 1 24.07.2010 10:45
Array sortieren... BlackScorp PHP Tipps 2010 15 12.07.2010 08:20
Websichere Farben .... halskrause HTML, Usability und Barrierefreiheit 8 29.03.2010 23:17
Termin-Array sortieren (mehrdimensionaler Array) mumaha PHP Tipps 2009 1 13.11.2009 08:14
Problem beim Sortieren von Bildern aus einem Ordner digniti PHP Tipps 2008 0 23.08.2008 17:38
RGB-Farben miteinander vergleichen, Farben aus Bild filtern scraddy PHP Tipps 2006 10 31.10.2006 10:16
DECIMAL lässt sich nicht mit ORDER BY sortieren buggybugga Datenbanken 4 07.07.2006 15:43
build nummer des bs ermitteln ... nur bei microsoft's bs!!! PHP Tipps 2005-2 2 24.07.2005 15:59
Problem beim Sortieren PHP Tipps 2005-2 5 29.06.2005 07:00
Besucher mit den meisten GB Einträgen ermitteln! Datenbanken 7 21.04.2005 12:09
Verliere Farben beim verkleinern von Bildern PHP-Fortgeschrittene 10 04.08.2004 16:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php hauptfarbe bild, html farbcodes sortieren array, php bild farbwerte meiste, bild pixel sortieren, farben sortieren php, ubuntu farbe bestimmen, bilder nach farbe sortieren, kamerabild nach farbe der pixel, farben eines bildes ordnen, bilder nach anzahl farben sortieren, ubuntu farben ermitteln, auflistung von farben mit bildern, programm pixel nach farben ordnen, farben auf bildern, ajax bilder nach farbe sortieren, farben aus bildern, anzahl farben ermitteln aus bild, menge von farben in bildern ermitteln, aus grauwertbild soll eine farbtabelle ermittelt werden, pixel nach farben sortieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:04 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