package eu.europeana.creative.dataset.smk.indexing;
import it.cnr.isti.feature.extraction.FeatureExtractionException;
import it.cnr.isti.indexer.IndexHelper;
import it.cnr.isti.melampo.vir.exceptions.VIRException;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import org.junit.Test;
import eu.europeana.service.ir.image.IRConfiguration;
import eu.europeana.service.ir.image.IRConfigurationImpl;
import eu.europeana.service.ir.image.api.SmkImageIndexingServiceImpl;
import eu.europeana.service.ir.image.api.SmkPivotManagementServiceImpl;
import eu.europeana.service.ir.image.exceptions.ImageIndexingException;
public class SmkImageIndexingTest {
IRConfiguration configuration;
SmkImageIndexingServiceImpl testImageIndexingService;
SmkPivotManagementServiceImpl pivotManager;
private Map<String, String> getThumbnailsMap(String dataset)
throws IOException {
File datasetFile = configuration.getDatasetFile(dataset);
IndexHelper ixHelper = new IndexHelper();
return ixHelper.getThumbnailsMap(datasetFile);
}
// @Test
// public void testFeatureExtraction() throws ImageIndexingException,
// IOException {
// String dataset = "smk";
// initIndexingService(dataset);
//
// // DominantColorExtractor extractor;
// File testImagesFolder = new File("/tmp/dcd");
// String[] fileNames = testImagesFolder.list();
// File imageFile;
// // DominantColorValues values;
// String fileName = null;
// String features;
//
// for (int i = 0; i < fileNames.length; i++) {
//
// fileName = fileNames[i];
// if (fileName.endsWith(".jpg")) {
// imageFile = new File(testImagesFolder, fileName);
// System.out.println(imageFile.getAbsolutePath());
// features = testImageIndexingService.extractFeatures(fileName,
// new FileInputStream(imageFile));
// System.out.println(features);
// }
//
// // imageFile = new File(testImagesFolder, fileName);
// // extractor = new DominantColorExtractor();
// // values = extractor.extractDescriptor(imageFile);
// // System.out.println(imageFile);
// // System.out.println(values);
// }
//
// // String imgFeatures = testImageIndexingService.extractFeatures(docID,
// // imageObj);
//
// // int indexedImages = testImageIndexingService.insertCollectionByUrls(
// // dataset, getThumbnailsMap(dataset));
// //
// // System.out.println("successfully indexed images: " + indexedImages);
//
// // assertEquals(42, indexedImages);
// // TODO: check if indexing process introduces duplications
// }
protected void initIndexingService(String dataset) {
configuration = new IRConfigurationImpl();
testImageIndexingService = new SmkImageIndexingServiceImpl(dataset,
configuration);
}
protected void initPivotManagementService(String dataset) {
configuration = new IRConfigurationImpl();
pivotManager = new SmkPivotManagementServiceImpl(
configuration, dataset);
}
@Test
public void testPivotFeaturesExtraction() throws IOException, FeatureExtractionException, VIRException{
initPivotManagementService("smk");
Map<String, String> thumbnails = getThumbnailsMap("smk");
pivotManager.extractPivotFeatures(thumbnails.keySet());
pivotManager.generateLireObjectPivotsBin();
}
@Test
public void testIndexDataset() throws ImageIndexingException, IOException {
String dataset = "smk";
initIndexingService(dataset);
Map<String, String> thumbnails = getThumbnailsMap("smk");
int indexedImages = testImageIndexingService.insertDatasetByIds(thumbnails.keySet());
// insertCollectionByUrls(
// dataset, getThumbnailsMap(dataset));
System.out.println("successfully indexed images: " + indexedImages);
// assertEquals(42, indexedImages);
// TODO: check if indexing process introduces duplications
}
}