用于指纹匹配的 Android SDK - 外部设备

Leo*_*ias 5 android fingerprint

我正在开发一个使用 U.are.U 4500 指纹读取器来识别用户的 Android 应用程序。我已经有一个后端服务器,它使用 SQL Server 来存储和注册用户数据,现在我需要我的应用程序能够读取用户指纹并验证该指纹是否与数据库中的任何指纹匹配。有谁知道能够进行这种比较的 SDK?

我正在使用 asia.kanopi.fingerscan 包来读取用户指纹,并且我已经可以进行扫描,现在我只需要获取此图像并与 SQL 数据库上的数据进行比较。我在 StackOverflow 上看到了一些答案,告诉我要为 Android 使用 openCV 库,但没有一个答案可以指导我如何去做。

我的开发基于本教程:https : //medium.com/touch4it/fingerprint-external-scanner-with-usb-database-sdk-64c3ec5ea82d,但不幸的是我在任何地方都找不到 SDK IDKit 指纹 SDK Mobile。

如何将图像与存储在数据库中的图像成功匹配?

Leo*_*ias 2

对于那些仍在寻找此问题答案的人。自从我实际实现我的解决方案以来已经有一段时间了,当我这样做时,我将这一行添加到我的应用程序 gradle 文件中:

com.github.lmone:SourceAFIS-Android:v3.4.0-fix3
Run Code Online (Sandbox Code Playgroud)

但现在我似乎无法在任何地方找到 github 链接。也许存储库被删除了。如果有人找到它,请将其发送给我,以便我可以在这里更新我的答案。

除此之外,如果您仍然可以将库添加到您的 Android 项目中,基本思想是使用 aFingerprintMatcher来比较两个FingerprintTemplate.

例子:

FingerprintTemplate probe = new FingerprintTemplate().dpi(500).create(digital_byte_array);

while (result.next()) {
    byte[] imgCandidate = digital_to_compare;
    FingerprintTemplate candidate = new FingerprintTemplate()
            .dpi(500)
            .create(imgCandidate);

    double score = new FingerprintMatcher()
            .index(probe)
            .match(candidate);

    if (score >= 40) {
        // Found a match
    }
}
            
Run Code Online (Sandbox Code Playgroud)

就我而言,我发现性能有点慢。它是可用的,但与 Android 内置的指纹设备相比就不算什么了。此外,您的数字收藏越多,找到匹配项所需的时间就越长。

比赛的分数由您决定哪个更适合您的项目。就我而言,40 是一个可靠的数字。FingerprintTemplate dpi 也是如此。

此外,该方法.create()接收 abyte[]作为参数。

编辑

我找到了这个链接,我几乎可以肯定它是我使用的库,但在新的存储库名称下:

https://github.com/robertvazan/sourceafis-java

该文档看起来与我使用的代码相同: https: //sourceafis.machinezoo.com/java