【问题标题】:I need to implement Image Indexing on a color palette using Lucene我需要使用 Lucene 在调色板上实现图像索引
【发布时间】:2023-03-25 20:00:01
【问题描述】:

给定一个仅包含图像的目录,我需要使用 Lucene 索引(使用倒排索引)对文件进行索引。假设我们提供了一个工具来提取颜色百分比(不是特定的 RGB 百分比),我应该如何使用 Lucene 库,以便当我查询具有绿色的图像时,我得到的结果集为具有绿色百分比的图像按降序排列?? 我应该如何修改字段文件?如果我创建一个新的 ColorField 文件,它的数据类型可以是什么以促进最小的更改? 我还需要修改分析器文件吗?

【问题讨论】:

  • 嗨,我知道这不相关,但我正在寻找一种提取颜色百分比的工具,您能推荐一下您使用的是什么吗?
  • @Omri 我自己构建了它作为演示,它的功能并不完整。此外,你想要什么样的工具?它应该只给出 rgb 值还是图像中特定颜色的浓度(rgb 的组合)?
  • 我正在寻找 rgb 值...我在这里找到了答案:stackoverflow.com/questions/2042789/… 谢谢! :)

标签: java lucene


【解决方案1】:

我会将您要搜索的百分比索引为单独的字段。使用IntFieldDoubleFieldFloatFieldLongField 或类似名称可能最有意义。

例如:

Document doc = new Document();
doc.add(new StoredField("path",path));
doc.add(new FloatField("green",percentageGreen,Field.Store.NO));
doc.add(new FloatField("red",percentageRed,Field.Store.NO));
//etc.

详细信息,例如使用哪个数字字段、是否存储百分比等,将取决于您的要求。

然后您可以使用NumericRangeQuery 搜索这些百分比,或使用适当的IndexSearcher.search call 根据它们进行排序,例如:

Sort sort = new Sort(new SortField("green",SortField.Type.FLOAT));
TopDocs docs = searcher.search(query,maxResults,sort);

【讨论】:

  • 谢谢,这是我现在正在实施的替代方法
猜你喜欢
  • 1970-01-01
  • 2022-01-04
  • 2020-12-19
  • 1970-01-01
  • 2012-09-14
  • 1970-01-01
  • 2012-07-02
  • 2014-12-29
  • 1970-01-01
相关资源
最近更新 更多