在Java中实现SIFT

Fly*_*ynn 4 java comparison image sift

所以我正在研究一个简单的Java应用程序,它允许用户将图像作为查询输入,并让应用程序将它与图像数据库(基本上只是不同图像的目录)进行比较.我基本上正在研究几种图像相似性测量技术,以找出适合比较汽车图片的技术.

我一直在做一些阅读,除了FFT/SSIM之外,我读过SIFT算法可以产生非常好的结果.但是,作为一个只有一年左右的基本Java经验的人,我真的不确定我是否是一个足够好的程序员才能实现它.天啊,由于它的明显复杂性,我仍然无法理解算法的核心概念.

所以我想问那些经验比我多的人.首先为此目的实施SIFT是否实用?我可以单独使用JDK(没有其他插件,如果可能的话)吗?我该怎么做呢?

提前致谢

小智 9

斐济图像处理软件包扩展了ImageJ,它有一个wiki网站,上面有关于其SIFT插件的信息:

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

java中的SIFT实现的源代码可以在mpicbg.git存储库中找到:

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

当您下载斐济时,包含SIFT特征提取和特征匹配的库是mpicbg.jar,位于Fiji.app/jars/文件夹下.

斐济可以从这里下载:

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

使用SIFT插件的一个例子是电子显微镜堆栈中连续切片的配准.看这个页面:

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

源代码将教您如何使用库进行SIFT特征提取以及从多组匹配特征计算转换模型:

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

  • 这个 http://pacific.mpi-cbg.de/cgi-bin/gitweb.cgi?p=mpicbg.git 已损坏 (3认同)