So I\'m working on a simple Java app that allows a user to input an image as a query and have the app compare it against a database of images (which is basically no more tha
The Fiji image processing package, which extends ImageJ, has a wiki website with information on its SIFT plugin:
http://pacific.mpi-cbg.de/wiki/index.php/Feature_Extraction
The source code of the SIFT implementation in java is available in the mpicbg.git repository:
http://pacific.mpi-cbg.de/cgi-bin/gitweb.cgi?p=mpicbg.git
The library that includes the SIFT feature extraction and feature matching is the mpicbg.jar, under Fiji.app/jars/ folder when you download Fiji.
Fiji can be downloaded from here:
http://pacific.mpi-cbg.de/wiki/index.php/Downloads
An example of usage of the SIFT plugin is the registration of consecutive slices in an electron microscopy stack. See this page:
http://pacific.mpi-cbg.de/wiki/index.php/Register_Virtual_Stack_Slices
The source code will teach you how to use the library for SIFT feature extraction and for computing transformation models from sets of matching features:
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
You might want to consider ImageJ - http://en.wikipedia.org/wiki/ImageJ
There is a SIFT plugin for it.
And check answers on stackoverflow here - Using SIFT for Augmented Reality
This tutorial in openimaj shows a step by step procedure on how to use SIFT from OpenImaj library.
http://openimaj.org/tutorial/sift-and-feature-matching.html
However, If you need to the java implementation, as the tutorial says,
We’ll use the difference-of-Gaussian feature detector which we describe with a SIFT descriptor. The features we find are described in a way which makes them invariant to size changes, rotation and position. These are quite powerful features and are used in a variety of tasks. The standard implementation of SIFT in OpenIMAJ can be found in the DoGSIFTEngine class:
The API method reference for the "DoGSIFTEngine" can be found by going through the following link.
http://openimaj.org/apidocs/org/openimaj/image/feature/local/engine/DoGSIFTEngine.html
Here is the link to the full implementation
http://openimaj.org/apidocs/src-html/org/openimaj/image/feature/local/engine/DoGSIFTEngine.html