使用Android设备相机的指纹扫描仪

时间:2016-05-05 14:26:31

标签: android image-processing sdk

我正在尝试实现,捕获手指图像,然后扫描该图像并从该图像获取生物识别指纹,然后最终将该图像发送到服务器。 基本上我没有想过要对这些图像进行处理。所以我尝试了Onyx SDK,问题解决了。但它是一个小道版本。现在我需要知道为了获得手指的生物图像,过程经历了什么过程,如裁剪,反转,对比等。 任何人都可以告诉我图像处理的步骤。或者用于指纹传感器的任何其他开源sdk。非常感谢你的帮助。

我只是想做这样的事情。 enter image description here enter image description here

说img one是捕获的图像,imge 2是在重新生成生物识别指纹之后

1 个答案:

答案 0 :(得分:6)

基本上你需要做的是"匹配"指尖的两个图像:一个是授权用户指尖的原始图像,另一个是相机刚拍摄的指尖图像。

如果两张图片匹配"然后相机抓住授权用户的指尖,你应该让她进来,否则访问将被拒绝。

以下是我可以评估"匹配"的步骤。之间的指尖图像:

  1. Crop the essential part :您可以裁剪图像中心的区域,或在CameraPreview上叠加一个方形区域,并要求用户捕捉相机图像当这个方形区域完全被她的指尖覆盖时。然后裁剪出那个广场内的东西。

  2. Equalize the cropped image :均衡可以提供更高的对比度并且更好地改善图像。

  3. Detect edges :通过检测边缘,您可以获得类似您发布的黑白图像,只显示指纹线。

    < / LI>
  4. Apply SIFT :使用SIFT,您可以提取&#34;功能&#34;这是图像中点的尺度不变(alsto rotation,tilt,light ...- invariant)表示。使用这些功能,您可以比较两个图像:如果可以在两个图像中找到特征,它们会匹配。

  5. 让我们举一个实际的例子

    第1步:原始图片

    这是原始用户的指尖图片

    enter image description here

    第2步:裁剪

    我们将它裁剪成指尖

    enter image description here

    第3步:均衡

    我们均衡裁剪的图像

    enter image description here

    第4步:边缘

    我们找到边缘

    enter image description here

    现在我们可以保存此图像并保留以供将来的身份验证参考。

    第5步:捕获新图像

    当相机获取指尖的新图像时

    enter image description here

    第6步:处理新图片

    我们处理它就像原来的那样

    enter image description here

    第7步:匹配

    最后,我们使用SIFT将原始图像与新图像匹配

    enter image description here

    请注意,即使某些点不匹配(10%),其中大多数(90%,大中心组)也能正确匹配。在此示例中,SIFT找到20个匹配点,您还可以设置特征质量的阈值,以改善匹配。

    使用Android

    要使用Android执行所有这些操作,您可以使用OpenCV Android Library,其中包含几乎所有内容的工具including SIFT

    希望这有帮助。