我正在尝试实现,捕获手指图像,然后扫描该图像并从该图像获取生物识别指纹,然后最终将该图像发送到服务器。 基本上我没有想过要对这些图像进行处理。所以我尝试了Onyx SDK,问题解决了。但它是一个小道版本。现在我需要知道为了获得手指的生物图像,过程经历了什么过程,如裁剪,反转,对比等。 任何人都可以告诉我图像处理的步骤。或者用于指纹传感器的任何其他开源sdk。非常感谢你的帮助。
说img one是捕获的图像,imge 2是在重新生成生物识别指纹之后
答案 0 :(得分:6)
基本上你需要做的是"匹配"指尖的两个图像:一个是授权用户指尖的原始图像,另一个是相机刚拍摄的指尖图像。
如果两张图片匹配"然后相机抓住授权用户的指尖,你应该让她进来,否则访问将被拒绝。
以下是我可以评估"匹配"的步骤。之间的指尖图像:
Crop the essential part :您可以裁剪图像中心的区域,或在CameraPreview上叠加一个方形区域,并要求用户捕捉相机图像当这个方形区域完全被她的指尖覆盖时。然后裁剪出那个广场内的东西。
Equalize the cropped image :均衡可以提供更高的对比度并且更好地改善图像。
Detect edges :通过检测边缘,您可以获得类似您发布的黑白图像,只显示指纹线。
< / LI>Apply SIFT :使用SIFT,您可以提取&#34;功能&#34;这是图像中点的尺度不变(alsto rotation,tilt,light ...- invariant)表示。使用这些功能,您可以比较两个图像:如果可以在两个图像中找到特征,它们会匹配。
第1步:原始图片
这是原始用户的指尖图片
第2步:裁剪
我们将它裁剪成指尖
第3步:均衡
我们均衡裁剪的图像
第4步:边缘
我们找到边缘
现在我们可以保存此图像并保留以供将来的身份验证参考。
第5步:捕获新图像
当相机获取指尖的新图像时
第6步:处理新图片
我们处理它就像原来的那样
第7步:匹配
最后,我们使用SIFT将原始图像与新图像匹配
请注意,即使某些点不匹配(10%),其中大多数(90%,大中心组)也能正确匹配。在此示例中,SIFT找到20个匹配点,您还可以设置特征质量的阈值,以改善匹配。
要使用Android执行所有这些操作,您可以使用OpenCV Android Library,其中包含几乎所有内容的工具including SIFT
希望这有帮助。