#java #verification #fingerprint #biometrics
#java #проверка #отпечаток пальца #биометрия
Вопрос:
Требуется ли для работы этого кода Digital Persona One Touch RTE (среда выполнения)?:
DPFPVerification verifier = DPFPGlobal.getVerificationFactory().createVerification();
Если да, то есть ли другой способ проверки цифровых характеристик образцов Persona (сериализованных) по цифровому шаблону Persona (сериализованному), используя только банки dpfp?
Причина: мы планируем использовать наш верификатор DPFP в веб-сервисе, предоставляемом TIBCO.
Любая помощь приветствуется!
Я получаю исключение Java JNI с этим образцом основного кода теста:
import com.digitalpersona.onetouch.DPFPFeatureSet;
import com.digitalpersona.onetouch.DPFPFeatureSetFactory;
import com.digitalpersona.onetouch.DPFPGlobal;
import com.digitalpersona.onetouch.DPFPTemplate;
import com.digitalpersona.onetouch.DPFPTemplateFactory;
import com.digitalpersona.onetouch.verification.DPFPVerification;
import com.digitalpersona.onetouch.verification.DPFPVerificationResu<
public class Main {
/**
* fingerScanTemplate is from WC DB
* sample is from the WS input parameters
*/
public boolean performVerification(byte[] fingerScanTemplate, byte[] sampleFeatures) {
DPFPTemplateFactory templateFactory = DPFPGlobal.getTemplateFactory();
DPFPFeatureSetFactory featureSetFactory = DPFPGlobal.getFeatureSetFactory();
DPFPVerification verifier = DPFPGlobal.getVerificationFactory().createVerification();
// Deserialize template amp; sampleFeature
DPFPTemplate deserializedTemplate = templateFactory.createTemplate(fingerScanTemplate);
DPFPFeatureSet features = featureSetFactory.createFeatureSet(sampleFeatures);
//Compare the feature set with the template, based on which finger was captured
DPFPVerificationResult result = null;
result = verifier.verify(features, deserializedTemplate);
return result != null amp;amp; result.isVerified();
}
/**
* @param args
*/
public static void main(String[] args) {
new Main().performVerification(null, null);
}
}
Ответ №1:
Нет, вам не нужен какой-то RTE. Я знаю, что мне нужно было установить One Touch SDK, потому что он запускает службу Windows под названием биометрическое сканирование или что-то подобное. Основная проблема, которую я вижу в вашем коде, заключается в том, что:
DPFPVerificationResult result = null;
result = verifier.verify(features, deserializedTemplate);
Должно быть:
DPFP.Verification.Verification.Result result = new DPFP.Verification.Verification.Result();
verifier.verify(features, template, ref result );
По крайней мере, это то, что заставило мой код начать корректную проверку. Мне также пришлось исправить ошибку программиста при создании набора функций, который необходимо выполнить следующим образом:
DPFP.FeatureSet features = ExtractFeatures(Sample, DPFP.Processing.DataPurpose.Verification);
У меня такое чувство, что вы используете более старый SDK, чем я, но, возможно, это немного поможет.