gpt4 book ai didi

java - 从 Lire 库中筛选特征

转载 作者:行者123 更新时间:2023-11-30 07:10:45 25 4
gpt4 key购买 nike

我正在尝试为 lire 库找到一个筛选实现。我唯一找到的是上面的链接 feature .我试图了解我必须使用什么来提取图像的筛选特征。知道我在这里要做什么吗?我正在尝试类似的东西:

 Extractor e = new Extractor();
File img = new File("im.jpg");
BufferedImage in = ImageIO.read(img);
BufferedImage newImage = new BufferedImage(in.getWidth(),
in.getHeight(), BufferedImage.TYPE_BYTE_GRAY);

List<Feature> fs1 = e.computeSiftFeatures(newImage);
System.out.println(fs1);

但我有一个空列表。

最佳答案

//Here is the revised answer for you it may help

public class indexing {

String directory="your_image_dataset";
String index="./images__idex";//where you will put the index

/* if you want to use BOVW based searching you can change the
numbers below but be careful */
int numClusters = 2000; // number of visual words
int numDocForVocabulary = 200;

/* number of samples used for visual words vocabulary building
this function calls the document builder and indexer function (indexFiles below)
for each image in the data set */

public void IndexImage() throws IOException{
System.out.println("-< Getting files to index >--------------");
List<String> images = FileUtils.getAllImages(new File(directory), true);
System.out.println("-< Indexing " + images.size() + " files >--------------");
indexFiles(images, index);
}
/* this function builds Lucene document for each image passed to it for
the extracted visual descriptors */

private void indexFiles(List<String> images, String index)
throws FileNotFoundException, IOException {

//first high level structure
ChainedDocumentBuilder documentBuilder = new ChainedDocumentBuilder();
//type of document to be created here i included different types of visual features,
//documentBuilder.addBuilder(new SurfDocumentBuilder());
//here choose either Surf or SIFT
documentBuilder.addBuilder(new SiftDocumentBuilder());
documentBuilder.addBuilder(DocumentBuilderFactory.getEdgeHistogramBuilder());
documentBuilder.addBuilder(DocumentBuilderFactory.getJCDDocumentBuilder());
documentBuilder.addBuilder(DocumentBuilderFactory.getColorLayoutBuilder());

//IndexWriter creates the file for index storage
IndexWriter iw = LuceneUtils.createIndexWriter(index, true);
int count = 0;
/*then each image in data set called up on the created document structure
(documentBuilder above and added to the index file by constructing the defined
document structure) */

for (String identifier : images) {
Document doc = documentBuilder.createDocument(new
FileInputStream(identifier), identifier);

iw.addDocument(doc);//adding document to index
iw.close();// closing the index writer

/* For searching purpose you will read the index and by constructing an instance of
IndexReader she you defined different searching strategy which is available in Lire
Please check the brace and test it. */

关于java - 从 Lire 库中筛选特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21849334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com