Accueil > Forum > > > > Calcul de la couleur dominante d'une image
Calcul de la couleur dominante d'une image
samedi 4 février 2006 à 14:17:01 |
Calcul de la couleur dominante d'une image

matique
|
Bonjour, Je souhaiterais calculer la couleur dominante d'une image jpg en php. Pour cela j'ai pensé a deux solutions : La premiere serait de parcourir l'image pixel par pixel de maniere à ranger dans un tableau chacune de ses couleurs. Mais est ce possible en php. La seconde serait de redimentionner l'imaga en 1 pixel de maniere à récuperer sa couleur. Dans ce cas la je ne suis pas sur que cela corresponde a la couleur dominante. Pouvez vous m'aider ? merci ! 
|
|
samedi 4 février 2006 à 15:14:28 |
Re : Calcul de la couleur dominante d'une image

coockiesch
|
Salut! Je sais pas pour ta 2ème idée, mais pour ta première, tu peux regarder ca: http://php.benscom.com/manual/fr/function.imagecolorat.php @++ R@f www.allpotes.ch: Photos, humour, vidéos, gags, ... "On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
|
|
samedi 4 février 2006 à 16:26:06 |
Re : Calcul de la couleur dominante d'une image

|
Merci pour ton aide le parcours est maintenant possible. Toutefois j'aimerais savoir s'il y a moyen de récuperer directement le tableau des couleurs plutot que de le construire car ca surchargerait moins le serveur je pense. Le temps d'execution est super important dans le cadre de mon projet ! 
|
|
samedi 4 février 2006 à 16:26:08 |
Re : Calcul de la couleur dominante d'une image

|
Merci pour ton aide le parcours est maintenant possible. Toutefois j'aimerais savoir s'il y a moyen de récuperer directement le tableau des couleurs plutot que de le construire car ca surchargerait moins le serveur je pense. Le temps d'execution est super important dans le cadre de mon projet ! 
|
|
samedi 4 février 2006 à 22:47:48 |
Re : Calcul de la couleur dominante d'une image

Anthomicro
|
Salut, oublie la deuxième solution. " La premiere serait de parcourir l'image pixel par pixel de maniere à ranger dans un tableau chacune de ses couleurs. Mais est ce possible en php."
ça c'est faisable mais c'est bien trop gourmand, PHP n'est absolument pas adapté pour faire ce genre de choses...
enfin bon si t'y tient quand même :
imagesx() et imagesy() d'abord pour avoir la largeur et la hauteur de l'image
deux while() pour parcourir l'image
dedans tu obtiens la couleur du pixel avec un imagecolorallocat() (cf coockiesch)
ensuite (aie aie aie gourmandise) tu peux stocker le nombre de fois que tu as trouvé la couleur dans un tableau qui regroupera les quantités.
exemple :
if(isset($tableau[$rgb])) { $tableau[$rgb]++; } else { $tableau[$rgb]=1; }
$rgb représente la couleur que t'as obtenue avec imagecolorallocat()
etc... ensuite tu classes le tableau par nombre décroissant et tu prends le premier terme, et t'auras ta couleur dominante.
a +
|
|
dimanche 5 février 2006 à 10:51:15 |
Re : Calcul de la couleur dominante d'une image

matique
|
Bonjour, Merci pour votre aide !  C'est quand meme vraiment dommage d'opter pour une solution aussi gourmande ! J'ai effectivement du faire un tableau de stat avec deux for imbriqués et finir par un max du tableau pour récuperer la couleur dominante ! Enfin bon ca me permet de traiter en même temps si l'image est en niveau de gris ou noir et blanc ou couleur !
|
|
lundi 6 février 2006 à 18:37:32 |
Re : Calcul de la couleur dominante d'une image

matique
|
Me revoila !
En fait, je compte opter pour un traitement a partir d'une miniature non reechantillonnée pour ne pas fausser les couleurs.
Mon probleme actuel est que si je veux trouver une couleur dominante significative d'une image, je dois regrouper les nuances. En effet, une image peut être a dominante verte avec plein de nuance et peut contenir une toute petite surface de #0000FF ! Et ben avec mon algo la couleur dominante sera #0000FF !
Quels conseils me donneriez vous a ce sujet ? Quelle fonction permet de dire quel est la couleur la plus proche d'un pixel donné parmit une liste de couleurs ?
Encore merci pour votre aide !
|
|
lundi 6 février 2006 à 19:10:14 |
Re : Calcul de la couleur dominante d'une image

Anthomicro
|
oulà, tu m'en demandes trop là, PHP n'étant pas fait pour faire du graphisme, c'est déjà pas mal, mais bon tout est affaire de maths après, tu n'as qu'à découper ton image en carrés (plus les carrés sont petits et plus ça sera précis jusqu'à une certaine limite) puis ensuite en carrés plus grands en prenant la couleur dominante de chaque carré pour en calculer ensuite la couleur dominante générale, mais bon ...
|
|
vendredi 13 novembre 2009 à 07:16:37 |
Re : Calcul de la couleur dominante d'une image

MonkeyIsBack
|
Coucou !
Je sais, je vais up un topic sur trois ans, j'ai honte :P
Mais au moins ça peut créer une indication pour les visiteurs suivants ^^...
Mes connaissances en PHP sont sommaires mais j'ai une petite idée sur la chose.
Déjà tu redimensionnes ton image en 100*100, comme ça tu conserves la rapidité du calcul (ton array ne fera "que" (XDD) 10 000 entrées), ensuite tu crées trois autres tableaux, qui enregistrent
hexdec(substr($valeurarray[x], 0, 2));
hexdec(substr($valeurarray[x], 2, 2));
hexdec(substr($valeurarray[x], 4, 2));
(où valeurarray[x] est ton premier tableau)
Comme ça tu obtiens la liste de chaque type de couleur en RGB
Il ne te reste plus qu'à créer trois variables qui feront la somme de chacunes des entrées de tes trois nouveaux arrays, tu divises par 10 000 (nombre d'entrées) comme ça tu obtiens la moyenne de chaque couleur dans l'image, et il te suffit donc de remettre tes données en hexadécimal, créer une nouvelle variable qui contient la moyenne de chaque type de couleur (si tu comprends ><) et tu as ta couleur dominante.
Exemple avec une image en 2x2 => couleurs : #11aaff, #88ddee, #995511, #aaeecc
tu vires les dièses avec un simple if (substr($couleur,0,1)=="#") $couleur=substr($color,1,6);
Tu crées un premier tableau, qui contient en [0] = 11aaff, [1]88ddee etc etc
Tu convertis tes couleurs en RGB (plus facile pour le traîtement des données), via des fonctions qu'on trouve un peu partout sur le net (tape PHP convertir HEX RGB)
Ensuite avec ce que j'ai écrit au dessus, tu crées trois nouveaux tableaux qui contiennent les valeurs R, G et B
couleurR
couleurG
couleurB
tu fais la somme des couleurR[x], la somme des couleurs couleurG[x], et des couleurC[x]
tu les enregistres dans des simples variables numériques
Tu divises tes variables par le nombre d'entrées dans le tableau (ici ça serait 4)
Et tu obtiens la valeur moyenne de R, de G et de B de ton image
Tu crées donc une nouvelle variable avec "$MoyenneCouleurR$MoyenneCouleurB$MoyenneCouleurB" => ta couleur dominante ^^...
|
|
Cette discussion est classée dans : couleur, image, pixel, calcul, dominante
Répondre à ce message
Sujets en rapport avec ce message
Image sur click .. [ par nicolas66 ]
Bonsoir @ tous !Je voulais juste savoir comen il était possible d'afficher une image créee avec php dans la meme page ou il y a un formulaire sur clic
Comment choisir la couleur de la bordure? [ par Linuss ]
Bonjour à tous, Voilà je viens de "finir" (bah oui entre guillimets, sinon je n'aurais pas de pb avec ^^ et qui n'est, je l'avoue, pas entierement de
Lib. GD, Texte sur image [ par DarkM60 ]
Bonjour tout le monde, J'aimerai creer une fonction qui met des retour a la ligne avec du texte sur une image(selon si le texte est grand ou pas quoi
Changer des pixels de couleur [ par meteo60 ]
Bonjour,J'utilise ces fonctions pour modifier la couleur de pixels:$couleur1=imagecolorexact($image,45,26,201);imagecolorset($image,$couleur1,233,217,
PHP et les images... [ par porciner ]
Bonjour, Je souhaiterais savoir s'il est possible avec PHP d'obtenir la couleur d'un pixel sur une image ? Concrétement : Une image est uploadée par l
Conversion image en couleurs données [ par matique ]
Bonjour, Je souaiterais convertir une image en restreignant sa palette de couleurs à une palette de couleurs que j'ai definit. Par exemple : j'ai un
Couleur transparente [ par gagah1 ]
Je voudrais afficher une image en spécifiant une couleur transparente. Comment dois-je faire pour fusionner celle-ci avec la couleur de fond de ma pag
La couleur la plus " présente " [ par jnbdzjnbdz ]
Salut, je sais pas si quelqu'un c'est comment faire pour que PHP sois capable de voir a partire d'une image la couleur la plus " présente ". Exemple:
Traitement d'image [ par Tartuffe ]
HELP !!!!!!! Bonjour, J'effectue des traitements d'image et y'a plusieurs trucs qui ne fonctionnent pas. L'historique : Ce qui marche : - je créé une
changer la couleur d'une partie de l'image [ par raoulman ]
Bonjour, J'ai une image contenant plusieurs couleurs et j'aimerais changer l'une d'elle. J'appelle mon image par la fonction imagecreatefrompng(). Je
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
XML ET PHPXML ET PHP par karouani
Cliquez pour lire la suite par karouani RE : GOOGLE MAPRE : GOOGLE MAP par inwebo
Cliquez pour lire la suite par inwebo
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|