2011-03-16 4 views
3

Je travaille sur un moteur de recherche de croquis qui corrèle le croquis de quelqu'un avec une image dans la base de données (le db est juste environ 40 images maintenant). Je fais cela surtout pour m'amuser, donc je ne suis pas très versé dans les techniques d'imagerie par ordinateur. Tout d'abord, y a-t-il des règles générales sur la façon de créer des histogrammes (tailles de bacs, intervalles, etc.)? J'utilise un code d'histogramme trouvé à http://www.scribd.com/doc/6194304/Histograms (mais porté sur JavaCV). Parfois, j'obtiens de bons résultats, parfois je reçois de mauvais résultats, la plupart du temps, je reçois des résultats «meh». J'ai expérimenté un TON avec des tailles et des gammes de bacs et je me demande si la comparaison des histogrammes de dimension plus élevée peut être la réponse ici. En second lieu, il semble que le noir soit très présent dans ma configuration d'histogramme actuelle (même un point noir déplace l'ensemble des résultats). Est-ce que cela devrait être prévu? Ou ai-je baisé quelque chose? Exemple: enter image description here Et après le point: enter image description here Notez que je reçois déjà des images de "earthrise" comme "proches".Corrélation fonctionnalité/blob et analyse d'histogramme

Je me demande également quelles méthodes je devrais utiliser pour l'analyse de blob ou de caractéristique. Je pense que des choses comme SURF peuvent être exagérées parce que je veux seulement comparer grossièrement blobs, pas cartographier avec précision les modèles. Est-il possible de comparer les bords après avoir été passé à travers un filtre Canny? (Faible complexité, si possible): enter image description here

Par exemple, ici, je veux les deux smiley faces à en haut parce que le « blob » smiley aiguille est plus étroitement liée à la forme du visage souriant que d'un groupe de fruit de la passion ou une galaxie.

Ouf question longue. Si vous voulez essayer le moteur pour vous-même, allez au http://skrch.dvt.name/ (bouchon effronté, je sais, je sais - ne fonctionne que dans FF/Chrome/Safari). Peut-être que les personnes plus expérimentées en vision par ordinateur peuvent faire des suggestions en fonction des résultats. Oh, j'utilise la distance CV_COMP_BHATTACHARYYA lorsque l'on compare des histogrammes (il semble que cela donne les meilleurs résultats bien que le chi-carré ne soit pas mauvais non plus).

Répondre

2

Y a-t-il un arrière-plan? Est-ce important? Peut-être que vous devez vérifier s'il existe un arrière-plan fourni par l'utilisateur ou non. alors vous "juste" besoin d'avoir 2 histogrammes par entrée db, un avec bg, un sans.

Cela empêchera earthrise de ressembler à une pomme avec un point. Pour la séparation de base de bg, essayez un canny, puis en prenant "outside" et le retirer d'une copie de l'original.

+0

L'arrière-plan est toujours blanc (c'est pourquoi je suis confus .. une pomme avec un point noir ne devrait ressembler en rien à earthrise). Je vais regarder dans la séparation bg canny, merci! –

+0

si efficacement l'utilisateur ne spécifie jamais un arrière-plan, de sorte que vous devriez probablement le retirer des hachages DB –

+0

Identifier l'arrière-plan est également difficile: D –