该代码是否需要Digital Persona一键式RTE(运行时环境)才能运行?:

DPFPVerification verifier  = DPFPGlobal.getVerificationFactory().createVerification();


如果是这样,是否还有另一种方法可以仅使用dpfp JAR对照数字角色模板(序列化)来验证数字角色样本特征(序列化)?

原因:我们计划在TIBCO提供的Web服务上安装DPFP验证程序。

任何帮助是极大的赞赏!

我得到了带有此示例测试主代码的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.DPFPVerificationResult;


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 & 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 && result.isVerified();
         }



    /**
     * @param args
     */
    public static void main(String[] args) {
        new Main().performVerification(null, null);
    }

}

最佳答案

不,您不需要某种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 );


至少这就是使我的代码开始正确验证的原因。在创建FeatureSet时,我还必须纠正程序员的错误,需要这样做:

DPFP.FeatureSet features = ExtractFeatures(Sample, DPFP.Processing.DataPurpose.Verification);


我觉得您使用的是比我更旧的SDK,但这也许会有所帮助。

关于java - 可以在不带RTE的情况下运行Digital Persona One Touch中的Verification Java API吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7642970/

10-11 00:42