1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java索引图片 使用Lire索引并搜索图片

java索引图片 使用Lire索引并搜索图片

时间:2023-02-02 07:15:51

相关推荐

java索引图片 使用Lire索引并搜索图片

最近想做一个图片检索的程序,期望实现的功能包括图片信息的记录、重复图片的查找、相似图片的查找等,于是找到了Lire库,一个用于图像搜索的Lucene扩展包。

Lire(全名:Lucene图像检索),是一种简单的用于创建图片的Lucene索引并实现基于内容的图片检索库。Lire实现的特色包括:

ScalableColor、ColorLayout和EdgeHistogram。(MPEG-7标准,多媒体内容描述接口中的描述工具,工具释义参见:/zWyIGQw)

CEDD和FCTH

颜色柱状图(HSV和RGB),Tamura & Gabor,自动色彩图,JPEG系数柱图(通用全局描述符)

SIFT和SURF中的视觉关键词

此外,还提供了基于Lucene的用于从索引中检索的方法。

Lire是从Caliph & Emir项目中的一部分发展而来的,它包含的基于内容的图片检索(CBIR)特征旨在为Caliph & Emir对其它Java项目提供一种简单和轻量的使用方式。

同时,它也发展成为一个大的很有意思的项目。

Lire使用全局的图像特点来进行基于内容的图像检索。你应该去查阅关于CBIR的基础文献以了解更多底层的方法和技术:

关于使用到的底层Lucene(Java搜索引擎)技术:

线性搜索(从每一个索引文件中匹配查询关键词)

粗略索引(基于G. Amato的文件倒排图像检索技术 )

------------------------------------------------------------------------------

代码示例中的方法均采自Lire开发Wiki页,并稍作修改。使用该方法,可以完成基本的图像识别功能,但是更加精确的搜索结果可能需要其他参数设置。

亦可使用Luke查看Lire生成的索引,可识别文件名(descriptorImageIdentifier)等,如使用CEDD文本生成器会显示CEDD信息(featureCEDD)。

PS:

我在使用lire做大批量的图片索引时遇到一系列的问题,记录如下:

1.java.lang.StackOverflowError

原因是代码中一个变量写错导致无限递归,从而造成栈溢出错误。

2.java.lang.IllegalArgumentException: Empty region!

原因是“ImageIO不支持ico格式图像读写“,索引的文件夹中包含ico格式的图标文件,而lire使用的ImageIO不支持对ico格式图片数据的处理。

3.java.lang.OutOfMemoryError: Java heap space

文件夹过大导致JVM堆空间不够了。由于我使用的是eclipse,打开Run-Open Run Dialog...,定位到当前的运行实例,进入选项Arguments下的VM arguments,

在其中输入-Xms128M -Xmx512M再次运行即可。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。