2011-03-08 5 views
4

Je travaille donc sur une application Java simple qui permet à un utilisateur d'entrer une image en tant que requête et de la comparer à une base de données d'images (qui n'est en fait qu'un répertoire de différentes images). En fait, j'étudie plusieurs techniques de mesure de similarité d'image pour trouver celles qui sont appropriées pour comparer des images de voitures.Implémentation de SIFT en Java

J'ai fait quelques lectures et en dehors de FFT/SSIM, j'ai lu que l'algorithme SIFT peut donner de très bons résultats. Cependant, en tant que personne ayant seulement une expérience Java de base d'environ un an, je ne suis honnêtement pas sûr que je sois un assez bon programmeur pour pouvoir l'implémenter. Enfer, j'ai toujours du mal à comprendre les concepts de base de l'algorithme en raison de sa complexité apparente.

Donc, je voudrais demander à ceux qui ont beaucoup plus d'expérience que moi. Est-il même pratique, en premier lieu, de mettre en œuvre une EIPD à cette fin? Pourrais-je le faire avec le JDK seul (pas d'autres addons, si possible)? Comment pourrais-je y aller?

Merci à l'avance

Répondre

9

Le logiciel de traitement d'image Fidji, qui étend ImageJ, a un site wiki avec des informations sur son plugin EIPD:

http://pacific.mpi-cbg.de/wiki/index.php/Feature_Extraction

Le code source de l'implémentation SIFT dans java est disponible dans le référentiel mpicbg.git:

http://pacific.mpi-cbg.de/cgi-bin/gitweb.cgi?p=mpicbg.git

La bibliothèque qui inclut l'extraction de fonction SIFT et la correspondance de caractéristiques est mpicbg.jar, sous le dossier Fiji.app/jars/ lorsque vous téléchargez Fiji.

Fidji peut être téléchargé ici:

http://pacific.mpi-cbg.de/wiki/index.php/Downloads

Un exemple d'utilisation du plug-in EIPD est l'enregistrement des tranches consécutives dans une pile de microscopie électronique. Voir cette page:

http://pacific.mpi-cbg.de/wiki/index.php/Register_Virtual_Stack_Slices

Le code source vous apprendra comment utiliser la bibliothèque pour l'extraction de caractéristiques EIPD et pour le calcul de modèles de transformation à partir d'ensembles de caractéristiques correspondant à:

http://pacific.mpi-cbg.de/cgi-bin/gitweb.cgi?p=fiji.git;a=blob;f=src-plugins/register_virtual_stack_slices/register_virtual_stack/Register_Virtual_Stack_MT.java;hb=HEAD

+0

cette http: //pacific.mpi-cbg.de/cgi-bin/gitweb.cgi?p=mpicbg.git est cassé –