/** * This method takes in the batch InstanceID and subsequently gets the parsedXMLFile. Then it * fetches all the Pages from it as they are with a document type unknown. and it classifies all * the pages based on Image comparison. In the end the result is put in the batch.xml file. * * @param batchInstanceIdentifier {@link String} * @param sBatchFolder {@link String} * @throws IOException for any input output exception * @throws DCMAApplicationException for any other type of exception that occurs. */ public void classifyAllImgsOfBatch(String batchInstanceIdentifier, String sBatchFolder) throws IOException, DCMAApplicationException { // Initialize properties LOGGER.info("Initializing properties..."); Batch parsedXmlFile = batchSchemaService.getBatch(batchInstanceIdentifier); String batchClassIdentifier = parsedXmlFile.getBatchClassIdentifier(); LOGGER.info("batchClassIdentifier = " + batchClassIdentifier); String sampleBaseFolderPath = batchSchemaService.getImageMagickBaseFolderPath(batchClassIdentifier, false); String imMetric = pluginPropertiesService.getPropertyValue( batchInstanceIdentifier, ImageMagicKConstants.CLASSIFY_IMAGES_PLUGIN, ImageMagicProperties.CLASSIFY_IMAGES_COMP_METRIC); String imFuzz = pluginPropertiesService.getPropertyValue( batchInstanceIdentifier, ImageMagicKConstants.CLASSIFY_IMAGES_PLUGIN, ImageMagicProperties.CLASSIFY_IMAGES_FUZZ_PERCNT); String maxVal = pluginPropertiesService.getPropertyValue( batchInstanceIdentifier, ImageMagicKConstants.CLASSIFY_IMAGES_PLUGIN, ImageMagicProperties.CLASSIFY_IMAGES_MAX_RESULTS); LOGGER.info( "Properties Initialized Successfully, sampleBaseFolderPath = " + sampleBaseFolderPath); // Get list of Page names from parsedXmlFile. List<String> listOfUnclasifiedPgPth = new LinkedList<String>(); Map<String, Integer> unclassifiedPgIndexMap = new HashMap<String, Integer>(); getPathOfPagesOfBatch( parsedXmlFile, listOfUnclasifiedPgPth, unclassifiedPgIndexMap, sBatchFolder); Map<String, CustomValueSortedMap> finalUnclasifiedPageConfidenceMap = performClassification( maxVal, imMetric, imFuzz, sampleBaseFolderPath, listOfUnclasifiedPgPth); List<Document> listOfDocuments = parsedXmlFile.getDocuments().getDocument(); Document docuemnt = listOfDocuments.get(0); Pages pages = docuemnt.getPages(); List<Page> listOfPages = pages.getPage(); updateXmlObject(finalUnclasifiedPageConfidenceMap, unclassifiedPgIndexMap, listOfPages); batchSchemaService.updateBatch(parsedXmlFile); }
private void getPathOfPagesOfBatch( Batch parsedXmlFile, List<String> listOfUnclasifiedPages, Map<String, Integer> unclassifiedPgIndexMap, String sBatchFolder) { Documents documents = parsedXmlFile.getDocuments(); boolean valid = true; if (documents == null) { valid = false; } List<Document> listOfDocuments = null; List<Page> listOfPages = null; if (valid) { listOfDocuments = documents.getDocument(); if (listOfDocuments == null || listOfDocuments.isEmpty()) { valid = false; } else { Document unknownDocument = listOfDocuments.get(0); Pages pages = unknownDocument.getPages(); listOfPages = pages.getPage(); if (listOfPages == null || listOfPages.isEmpty()) { valid = false; } } } if (valid) { processPageList(listOfPages, listOfUnclasifiedPages, unclassifiedPgIndexMap, sBatchFolder); } }