2014-11-25 38 views

回答

2

使用Camera AS FINGER LOCK

爲refernece檢查這個 Fingerprint Scanner using Camera

正如有人誰在做顯著研究這個確切的問題,我可以告訴你們,這是很難得到合適的圖像模板(特徵提取)使用任何當前Android設備上的股票相機。主要的衰弱問題是在手指的山脊和山谷之間實現顯着的對比。商業光學指紋掃描儀(您試圖模仿)通常通過棱鏡中受挫的全內反射實現必要的對比。

FTIR生物特徵識別

在這種情況下,同時從谷光不從脊的棱鏡接觸光被髮送到CMOS傳感器。你根本無法可靠地從Android相機獲得同樣的結果,但這並不意味着在理想條件下你無法獲得可用的東西。

我用商業光學指紋掃描儀(Futronics FS80)在左側拍攝圖像,右側用普通相機(15MP Cannon DSLR)拍攝。剪切後,翻轉(與其他掃描儀的慣例相匹配),對比照相機圖像等,我們得到以下結果。

相機圖像的低對比度是明顯的。

但該軟件能夠準確地確定山脊流量。

進入這裏

形象的描述和我們最終找到匹配的細節體面的數量(標有紅色圓圈。)

這裏的壞消息。採取這些類型的手指尖的近距離拍攝是困難的。我用閃光燈的DSLR來實現這些結果。另外大多數指紋匹配算法不是尺度不變的。因此,如果在隨後的「掃描」中手​​指距離相機較遠,則可能與原稿不匹配。

我用於可視化的軟件包是出色的和BSD許可的SourceAFIS。雖然目前只移植到C#和Java(有限),但沒有公司的「開源版本」/「付費版本」shenanigans。

非相機基礎的解決方案:

對於可怕的數量很少有支持的硬件設備「USB主機模式」,你可以寫一個自定義的驅動程序集成與Android的指紋掃描儀。我會誠實地說,對於這兩個模型我是這樣做的,這是一個巨大的痛苦。我通過使用wireshark來嗅探掃描器和具有工作驅動程序的Linux盒之間的USB數據包,然後根據嗅探命令編寫Android驅動程序,從而完成了它。

交叉編譯FingerJetFX

一旦你已經制定了圖像採集(包括潛在的解決方案有其缺點)的解決方案,你可以開始擔心越來越FingerJetFX運行在Android上。首先,您將使用他們的SDK編寫一個自包含的C++程序,該程序將圖像轉換爲模板。之後,你真的有兩個選擇。

將其編譯爲庫並使用JNI與其進行交互。 將其編譯爲可執行文件並讓Android程序將其稱爲子進程。 無論你需要NDK。我從來沒有使用JNI,所以我會順從別人的智慧,看看我們是如何最好的。我總是傾向於選擇路線#2。對於這個應用程序,我認爲這是適當的,因爲你只是真的調用本地代碼來做一件事,模板化你的圖像。一旦你的本地程序運行並交叉編譯,你可以使用這個問題的答案將它與你的android應用程序打包在一起,並從你的Android代碼中調用它。

0

1] Android平臺上沒有指紋檢測的API或硬件支持。

2]現有的指紋鎖定系統不適用於指紋圖案匹配。

3]他們正在壓力比較,手指印象等的區域

參考:Link