Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
696 views
in Technique[技术] by (71.8m points)

image - Implementing SIFT in Java

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 than a directory of different images). I'm basically investigating several image similarity measurement techniques to find out which ones are appropriate for comparing pictures of cars.

I've been doing some reading and apart from FFT/SSIM, I've read that the SIFT algorithm can yield very good results. However, as someone with only about a year's worth of basic Java experience, I'm honestly not sure if I'm a good enough programmer to be able to implement it. Hell, I'm still having trouble understanding the core concepts of the algorithm due to it's apparent complexity.

So I'd like to ask those with much more experience than me. Is it even practical in the first place to implement SIFT for such purpose? Could I do it with the JDK alone (no other addons, if even possible)? How would I go about doing it?

Thanks in advance

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...