Android Appareil Photo De Solutions Basées Sur:
Comme quelqu'un qui a fait d'importantes recherches sur ce problème précis, je peux vous dire que c'est difficile de se faire une image pour la création de modèles (extraction) à l'aide d'un stock de caméra, sur tout appareil Android. Le principal débilitante problème est de parvenir à un contraste important entre le doigt de crêtes et de vallées. Commercial optiques scanners d'empreintes digitales (que vous essayez d'imiter) généralement obtenir le contraste frustré par réflexion totale interne dans un prisme.
![FTIR in Biometrics]()
Dans ce cas, la lumière de l'crêtes de contacter le prisme sont transmises au capteur CMOS tandis que la lumière de la vallées ne le sont pas. Vous êtes tout simplement pas fiable pour obtenir les mêmes résultats à partir d'un appareil photo Android, mais cela ne signifie pas que vous ne pouvez pas obtenir quelque chose d'utilisable dans des conditions idéales.
J'ai pris l'image sur la gauche avec un commercial de optique scanner d'empreintes digitales (Futronics FS80) et la droite, avec une caméra normale (15MP Canon DSLR). Après le recadrage, l'inversion (pour correspondre à l'autre scanner de la convention), contraste, etc l'image de la caméra, nous avons obtenu les résultats suivants.
![enter image description here]()
Le faible contraste de l'image de la caméra est évident.
![enter image description here]()
Mais le logiciel est en mesure de déterminer avec précision l'écoulement d'arête.
![enter image description here]()
Et on finit par trouver un nombre décent de l'appariement de minutie (marquées par des cercles rouges.)
Voici la mauvaise nouvelle. La prise de ces types de prises de vues rapprochées de la pointe d'un doigt est difficile. J'ai utilisé un REFLEX numérique avec un flash pour atteindre ces résultats. En outre, la plupart des algorithmes de comparaison d'empreintes ne sont pas invariant d'échelle. Donc, si le doigt est plus éloigné de l'appareil photo sur une "analyse", il peut ne pas correspondre à l'original.
Le logiciel que j'ai utilisé pour les visualisations est l'excellent et sous licence BSD SourceAFIS. Aucune entreprise", la version open source"/ "version payante" manigances soit bien qu'il n'est porté à C# et Java (limité).
Non Caméra De Solutions Basées Sur:
Pour l'effrayante petit nombre d'appareils qui ont un matériel de soutien "USB Host "Mode", vous pouvez écrire un pilote personnalisé pour intégrer un scanner d'empreintes digitales avec Android. Je vais être honnête, pour les deux modèles que j'ai fait cela parce que c'était une énorme douleur. J'ai accompli en utilisant wireshark sniffer des paquets USB entre le scanner et une linux box qui ont eu un travail de pilote, puis d'écrire un Android pilote basé sur le renifla commandes.
La Compilation Croisée FingerJetFX
Une fois que vous avez travaillé sur une solution pour l'acquisition de l'image (les deux solutions possibles ont leurs inconvénients), vous pouvez commencer à vous inquiéter d'être FingerJetFX fonctionnant sur Android. D'abord vous allez utiliser leur kit de développement pour écrire un autonome un programme C++ qui prend une image et il se transforme en un modèle. Après que vous avez deux options.
- Compiler une bibliothèque et utiliser JNI à l'interface avec elle.
- Compiler un exécutable et laissez votre Android programme de l'appeler comme un sous-processus.
Soit, vous aurez besoin du NDK. Je n'ai jamais utilisé JNI donc je m'en remets à la sagesse des autres sur la meilleure façon de nous il. J'ai toujours tendance à choisir la route #2. Pour cette application, je pense que c'est approprié, car vous n'êtes vraiment appeler le code natif pour faire une chose, le modèle de votre image. Une fois que vous avez votre propre programme en cours d'exécution et cross-compilé, vous pouvez utiliser la réponse à cette question pour le paquet avec votre application android et l'appeler à partir de votre code Android.