예제 #1
0
        public void extractAndAddToNewTemplate(TInputData input, Core.Template.Persistence.IPersistentTemplate newTemplateToStore)
        {
            string message = "Template extraction:";

            message += ".";
            onProgressChanged(new ProgressReport(message));

            //create feature vector
            TTemplatedFeatureVector featureVector = this.components.getTemplatedFeatureVectorExtractor().extractFeatureVector(input);

            message += ".";
            onProgressChanged(new ProgressReport(message));

            //create template
            TTemplate template = this.components.getTemplateCreator().createTemplate(featureVector);

            message += ".";
            onProgressChanged(new ProgressReport(message));

            //convert to binary form
            serializer.writeToStream(newTemplateToStore.getStream(), template);

            message += ".";
            onProgressChanged(new ProgressReport(message));

            //store template
            //templateDatabase.addRecord(new Database.BiometricDatabase.BiometricRecord(r.SampleID, r.BiometricID, persistentTemplate));

            //onProgressChanged(new ProgressReport("Template extraction: persistent template", act, total));
        }
예제 #2
0
 public void extractAndAddToNewTemplate(TInputData input, Core.Template.Persistence.IPersistentTemplate newTemplateToStore)
 {
     foreach (Core.Block.IInputDataProcessingBlock <TInputData> block in iterator())
     {
         Core.Template.Persistence.IPersistentTemplate subtemplate = newTemplateToStore.createSubtemplate(block.Name);
         block.extractAndAddToNewTemplate(input, subtemplate);
     }
 }
예제 #3
0
        public int pushTemplate(Core.Template.Persistence.IPersistentTemplate template)
        {
            TTemplate bufferedTemplate;// = this.biometricAlgorithmSettings.getTemplateCreator().createEmptyTemplate();

            serializer.initFromStream(template.getStream(), out bufferedTemplate);
            templateBuffer.Add(bufferedTemplate);

            return(templateBuffer.Count() - 1);
        }
예제 #4
0
 public void register(TInputData inputData, Core.Database.BiometricID biometricID)
 {
     sampleIDIterator++;
     //create new template
     Core.Template.Persistence.IPersistentTemplate mt = this.settings.getPersistentTemplateCreator().createPersistentTemplate(this.settings.Name, biometricID);
     //extract input data to template
     this.settings.getProcessingBlock().extractAndAddToNewTemplate(inputData, mt);
     //add to database
     this.getTemplateDatabase().addRecord(new Core.Database.TemplateDatabase.TemplateRecord(sampleIDIterator.ToString(), biometricID, mt));
 }
예제 #5
0
        public int pushTemplate(Core.Template.Persistence.IPersistentTemplate template)
        {
            int index = templateNumbers.Count();

            templateNumbers.Add(new Dictionary <string, int>());
            foreach (Core.Block.IInputDataProcessingBlock <TInputData> block in iterator())
            {
                int subindex = block.pushTemplate(template.getSubtemplate(block.Name));
                templateNumbers[index].Add(block.Name, subindex);
            }
            return(index);
        }
예제 #6
0
        public void extractTemplates(Core.Database.IRecordEnumerable <TInputRecord> inputDatabase, Core.Database.TemplateDatabase.TemplateDatabase templateDatabase)
        {
            onProgressChanged(new ProgressReport("Template extraction started"));

            int total = inputDatabase.getRecords().Count();
            int act   = 0;

            foreach (TInputRecord r in inputDatabase.getRecords())
            {
                act++;

                string message = "Template extraction ";
                message += ".";
                onProgressChanged(new ProgressReport(message, act, total));

                //create input data
                TInputData inputData = this.evaluationSettings.getInputDataCreator().createInputData(r);

                message += ".";
                onProgressChanged(new ProgressReport(message, act, total));

                Core.Template.Persistence.IPersistentTemplate mt = this.evaluationSettings.getPersistentTemplateCreator().createPersistentTemplate(this.evaluationSettings.Name, r.BiometricID);

                foreach (var block in evaluationSettings.getEvaluatedBlockIterator())
                {
                    //var block = bioSystem.getBiometricSystemSettings().getProcessingBlock();
                    //persistent template
                    Core.Template.Persistence.IPersistentTemplate persistentTemplate = mt.createSubtemplate(block.Name);
                    block.extractAndAddToNewTemplate(inputData, persistentTemplate);

                    message += ".";
                    onProgressChanged(new ProgressReport(message, act, total));
                }

                //store template
                templateDatabase.addRecord(new Core.Database.TemplateDatabase.TemplateRecord(r.SampleID, r.BiometricID, mt));

                message += ".";
                onProgressChanged(new ProgressReport(message, act, total));
            }
        }
예제 #7
0
 public void extractAndAddToExistingTemplate(TInputData input, Core.Template.Persistence.IPersistentTemplate existingTemplate, Core.Template.Persistence.IPersistentTemplate newTemplateToStore)
 {
     throw new NotImplementedException();
 }