1

我已经使用小程序以字符串的形式捕获了一个功能集。我需要将该字符串转换回字节并反序列化以匹配它。但我不知道哪里出了问题,因为它没有将模板与功能集进行比较。我已经为此奋斗了几个星期,请任何人帮助我。

//Converting string stored in db back to template:
            byte[] byteArray = new byte[1];
            byteArray = hexStringToByteArray(dbTemplate);
            DPFPTemplate template = DPFPGlobal.getTemplateFactory().createTemplate();
            template.deserialize(byteArray);

//Converting featureset string captured by applet 
            byte[] fsArray = new byte[1];
            fsArray = hexStringToByteArray(ftsetstring);
            DPFPFeatureSet features = null;
            features.deserialize(fsArray);

//Comparing template with features acquired
            DPFPVerification matcher =   DPFPGlobal.getVerificationFactory().createVerification();
            DPFPVerificationResult fresult = matcher.verify(features, template);

                if (fresult.isVerified()) {

                    return "The fingerprint was VERIFIED.";

                } else {
                    return "The fingerprint was NOT VERIFIED.";

我的错误在哪里???

4

2 回答 2

0

首先,您需要一个带有数据侦听器的捕获器来从指纹设备中获取特征:

DPFPCapture capturer=DPFPGlobal.getCaptureFactory().createCapture();
capturer.addDataListener(new DPFPDataListener(){
    public void dataAcquired(DPFPDataEvent e){
        DPFPSample sample=e.getSample();
        DPFPFeatureSet features=extractor.createFeatureSet(sample, DPFPDataPurpose.DATA_PURPOSE_ENROLLMENT);
        // Serialize or verify features
    }
});

如果您正在序列化:

DPFPEnrollment enroller=DPFPGlobal.getEnrollmentFactory().createEnrollment();
enroller.addFeatures(features);
if(enroller.getFeaturesNeeded()==0){
    byte[] result=enroller.getTemplate().serialize();
    // Save result in data base
}

如果您正在验证:

// Get byte[] result from data base
DPFPTemplateFactory templateFactory=DPFPGlobal.getTemplateFactory();
DPFPVerificationResult verificator=verificator.verify(features, templateFactory.createTemplate(result));
if(verificator.isVerified()){
    // Grant access
}
于 2013-05-20T23:52:42.290 回答
0

我以前从未使用过 Digital Persona,但在任何 API 中,这是:

        DPFPFeatureSet features = null;
        features.deserialize(fsArray);

会导致NullPointerException. 我试图查找如何正确使用该类,但您必须是 Digital Persona 的成员才能查看 javadoc。对不起!

于 2012-11-09T02:26:37.030 回答