2010-11-18 6 views
1

J'ai besoin de faire une recherche basée sur la couleur PHP, où l'utilisateur cliquera sur une couleur sur une palette et la recherche récupérera toutes les images avec des couleurs similaires prédominantes.Moteur de recherche d'images basé sur les couleurs sur PHP

Les réorganisations seront triées dans l'ordre décroissant à partir des images avec les couleurs les plus similaires.

Quelqu'un peut-il souligner quelques lignes directrices ou des classes existantes, des exemples, etc. sur la façon d'y parvenir?

Spécialement comment la partie "aproximation" ou "similaire" de la recherche devra-t-elle être? Comment sélectionner différents types de "orange" et les trier du plus similaire au plus fermé.

Merci

Répondre

1

D'abord, vous ne devriez pas chercher dans une bibliothèque de images à la volée. Ce sera extrêmement lent surtout si vous devez trouver la couleur prédominante de chaque image. Vous avez besoin de quelque chose comme un robot, mais spécifiquement pour les images.

Pour connaître la couleur dominante, vous aurez besoin d'une base solide en mathématiques pour que:

http://en.wikipedia.org/wiki/Normal_distribution

+0

Il ne fera pas la recherche à la volée. L'idée est que chaque fois qu'une image est téléchargée, une palette de base de disons 8 couleurs prédominantes est extraite et stockée dans une base de données. Voilà où commencent mes plus grands doutes. Dans quel format dois-je stocker les couleurs pour optimiser la recherche? RGB, HEX, HSL? Comment trouver des couleurs similaires à {# 166918} ou {R: 22 G: 105 B: 24?} – Ericko

+0

Pour simplifier, 'imagecolorclosest()' de GD pourrait vous aider – stillstanding

+0

Vous pouvez mesurer la variance entre 'imagecolorclosest' renvoie la valeur et votre couleur d'entrée. Les triades entières seraient optimales pour la recherche, mais pas nécessairement pour le stockage. – stillstanding

1

Je l'ai fait un travail similaire. Mon implémentation peut être trouvée ici http://code.google.com/p/hppg/. L'exemple en direct peut être trouvé à la maison du projet. Ce moteur de recherche comporte également la recherche par mot-clé et couleurs en même temps. Toutes les informations détaillées et le code peuvent être trouvés sur la page d'accueil du projet. J'espère que ça aide :)

2

Voici un exemple de la façon dont j'ai analysé des images en utilisant les fonctions lib de php GD. De là, vous avez juste besoin de stocker les données analysées dans un DB à utiliser lors de la recherche.

détails peuvent être trouvés ici: http://www.colab-aktiv.com/?page_id=263

Les étapes de base sont les suivantes:

  • définir les couleurs dans la couleur nuanciers

  • Créer un objet image en utilisant l'image est à analyser, redimensionner l'image si elle est trop grande

  • Créer un objet image et chargez les couleurs des nuanciers dans la palette d'images. C'est la palette utilisée par une image GIF. C'est la palette de comparaison que les couleurs de l'image analysée seront comparées.

  • Parcourez tous les pixels de l'image et comparez-la à la correspondance la plus proche du pixel dans la palette de comparaison.

  • Trier les résultats de pointage dans l'ordre décroissant

  • Afficher les meilleurs résultats

Questions connexes