code: public static void main(String args[]) throws Exception {
  		String imageFolder = "C:/images/";
  		String imagFilename = "test.jpg";
  		String[] codebookFiles = { "C:/codebook1.csv", "C:/codebook2.csv", "C:/codebook3.csv",
  				"C:/codebook4.csv" };
  		int[] numCentroids = { 64, 64, 64, 64 };
  
  		String pcaFilename = "C:/pca.txt";
  		int initialLength = numCentroids.length * numCentroids[0] * AbstractFeatureExtractor.SURFLength;
  		int targetLength = 128;
  
  		ImageVectorization imvec = new ImageVectorization(imageFolder, imagFilename, targetLength, 512 * 384);
  		ImageVectorization.setFeatureExtractor(new SURFExtractor());
  		double[][][] codebooks = AbstractFeatureAggregator.readQuantizers(codebookFiles, numCentroids,
  				AbstractFeatureExtractor.SURFLength);
  		ImageVectorization.setVladAggregator(new VladAggregatorMultipleVocabularies(codebooks));
  		if (targetLength < initialLength) {
  			PCA pca = new PCA(targetLength, 1, initialLength, true);
  			pca.loadPCAFromFile(pcaFilename);
  			ImageVectorization.setPcaProjector(pca);
  		}
  		imvec.setDebug(true);
  
  		ImageVectorizationResult imvr = imvec.call();
  		System.out.println(imvr.getImageName() + ": " + Arrays.toString(imvr.getImageVector()));
  	}
docs: Example of SURF extraction, multiVLAD aggregation and PCA-projection of a single image using this
  class.
  
  @param args
  @throws Exception