1. 程式人生 > >JAVA識別身份證號碼,H5識別身份證號碼,tesseract-ocr識別(二)

JAVA識別身份證號碼,H5識別身份證號碼,tesseract-ocr識別(二)

背景介紹

上一篇博文介紹瞭如何使用JAVA識別身份證號碼,假設在截取了身份證號碼資訊的情況下,這一篇博文主要討論一下思路吧,技術方面都是大家會的。

思路分析

H5拍照上傳 —> 服務端擷取身份證號碼 —–> 識別號碼 —–>返回資訊

這幾步,關鍵點在於 擷取身份證號碼這個步驟。我們期望的是正好擷取到身份證號碼的位置。
這裡寫圖片描述
這位大哥,罪過罪過,暫且借你圖片一用,如侵犯了權益,請聯絡我,立馬刪除。

最優方案
我覺得最好的辦法是,直接在照相的介面出現一個紅色的框框,讓使用者自己去對準身份證號碼,可惜H5呼叫攝像頭只能使用系統的介面,這個功能必須APP來做。沒辦法最優方案只好拋棄。
歪招


由於H5的限制,我想了一個歪招,使用者上傳完照片之後,看見圖片才給他顯示一個紅框,如果識別錯誤,使用者再次照相的時候自己去校準。
這個體驗肯定非常不好,目前未使用APP的情況下,我們暫且這樣吧。

處理圖片
在擷取身份證位置的時候,每個攝像頭畫素不一樣怎麼辦呢?當然可以使用百分比擷取。
而我使用的是對圖片進行縮放,據我觀察,大概縮放到 900x540,當然這會有一點變形。
具體值大家自行把握。
然後擷取身份證號碼的位置。具體值大家可以自行把握。

        ImgCutUtil.zoomImage(src, src, 900, 540);
        ImgCutUtil.cutImage
(src, temp + filname, 290, 400, 600, 140); return TesseractUtil.recognizeText(new File(temp + filname));

找到前端,把介面做出來,你看見的紅色框框是一個div,是前端用CSS畫出來的,當然你也可以在後臺處理圖片的時候,把你擷取的那一部分加上紅色框。展示介面如下。
這裡寫圖片描述

這裡寫圖片描述

測試結果

使用Iphone5s、Iphone6、Iphone6s測試,識別效果良好錯誤率很少。
使用魅族測試,識別率低。照片模糊偏黃(是不是不對圖片進行縮放會好些?大家可以測試一下)

測試結果證明一個道理,這個東西識別率要提高,必須要結合APP做!!!

後記

依照同樣的思路,安裝上中文語言包,然後對tesseract進行訓練,是不是可以把所有的資訊都是別呢?如果你做出來了請告訴我!!嘿嘿嘿。

這裡寫圖片描述

相關推薦

Java從入門到放棄》入門篇:springMVC數據傳遞

java springmvc modelandview 上一篇講完了springMVC中數據傳遞中的接收數據,今天繼續完成數據的向後傳遞。數據傳遞的核心對象ModelAndView,註意其包名,不要引用錯了!正確的:org.springframework.web.servlet.ModelAndV

Java中String、StringBuilder、StringBuffer常用源碼分析及比較:StringBuilder、StringBuffer源碼分析

string類型 character private 字符 代碼 less pri des over StringBuilder: 一、構造方法: /** * Constructs a string builder with no characters in i

一邊學一邊寫出的人工智能教程

ret max del drop imp 出了 utils details emp 上回制作了一個“至少可以運行”的東西,但有個小問題:mnist 在哪?或者,能自己找圖片訓練麽?(雖說28×28且僅黑白通道的圖不多見)  ——自然是可以,也是應當的。並且我們可以想象,用於

Windows環境下從零開始搭建Nodejs+Express+Ejs框架---安裝Expressejs

所有 nod 環境 安裝目錄 關於 str 列表 ima 執行 安裝Express,ejs的前提是一定要先安裝nodejs,具體安裝方法請查看 http://www.cnblogs.com/tfiremeteor/p/8973105.html 安裝Express和ejs的前

輸入一組數找出其中滿足某種條件的數

new pan cout include str view 哈希 出現 ash 書接上文。 輸入一組數,找出其中滿足某種條件的數。 短短的一句話,可以衍生出各種場景。今天遇到一道題,輸入一些學生的分數,哪個分數出現的次數最多?如果有多個並列,從大到小輸出。分數均為不超過10

Java 連結串列-刪除連結串列、修改連結串列、遍歷筆記

上一章連結串列:https://blog.csdn.net/xiaoxin0630/article/details/85197714 這裡用虛擬頭節點 更好理解,設定邊界這些 在上一章,迴圈找元素的時候index-1了,設定虛擬節點,就不需要,讓人更加懂 連結串列的刪除 把要新

Android WiFi功能實現知其然必知其所以然!

終於吧WiFi功能搞定了,前後歷時半個多月的時間。進度有些慢。但還是很充實的,搞定一個自己面臨的難題時,那種豁然開朗的感覺,讓人神清氣爽。要不是在公司上班時間,真想大吼一聲!“咱老百姓啊,今兒個真高興。。” 我想愛哥,鴻洋和老郭在此的話,肯定嗤之以鼻,心裡碎碎念:老子搞個妞

併發程式設計—— Java 執行緒池 實現原理與原始碼深度解析 之submit方法

在上一篇《併發程式設計(十一)—— Java 執行緒池 實現原理與原始碼深度解析(一)》中提到了執行緒池ThreadPoolExecutor的原理以及它的execute方法。這篇文章是接著上一篇文章寫的,如果你沒有閱讀上一篇文章,建議你去讀讀。本文解析ThreadPoolExecutor#submit。  

切換iframe頁面從內容長的頁面切換到內容短的頁面滾動條不會消失的問題解決

問題描述:在上一篇文章"非跨域情況下iframe 高度自適應的問題解決"的背景下,在低版本google瀏覽器下執行時,出現了一個問題,"當頁面切換時,從內容長(有滾動條產生)的頁面回到內容短(沒有滾動條產生)的頁面,滾動條不會消失",查詢原因後發現,是iframe自適應函式在google低版本下不相容導致的,

繼承RichTextBox完成程式碼編輯器支援語法高亮、行號顯示

    當前輸入行閃爍終於比較滿意的解決了。     以處理高亮匹配時,以前是直接在rt裡使用selectionstart、selectedtext替換原始文字;     首先將需要處理的文字處理完成,以RTF格式暫存到變數中,一次性替換到原始文字位置,效果有所好轉,但偶有

DICOM:剖析Orthanc中的Web ServerMongoose之“連線請求觸發的事件序列”

背景:         Orthanc是本專欄中介紹過的一款新型DICOM伺服器,具有輕量級、支援REST的特性,可將任意執行Windows和Linux系統的計算機變成DICOM伺服器,即miniPACS。Orthanc內嵌多種模組,資料庫管理簡單,且不依賴於第三方軟體。因

使用python中openpyxl模組操作excel檔案計算單元格分子式的相對分子質量

在(一)文中,在最後輸出結果時,只是將相對分子質量的值輸出,並未將對應的分子式輸出,琢磨了一天,將改進的程式碼貼出來,希望大家可以給出點優化建議! import openpyxl import re def massMr(s):#定義計算相對分子質量的函式,

springboot 實現攔截器許可權過濾以及用攔截器實現操作日誌功能

接上文 繼承WebMvcConfigurerAdapter 類,新增 上文寫的攔截類 具體程式碼如下: package com.hcmony.web.interceptor; import org

用函數式編程從0開發3D引擎和編輯器:函數式編程準備

cat null 存在 處理程序 字符串 優勢 attr 互轉 defined 大家好,本文介紹了本系列涉及到的函數式編程的主要知識點,為正式開發做好了準備。 函數式編程的優點 1.粒度小 相比面向對象編程以類為單位,函數式編程以函數為單位,粒度更小。 正所謂: 我只想要

十年風雨一個普通程式設計師的成長之路

海風.寧波 2012年5月,又是一次外包的工作。 此時的工資已經是5500,出差補助每天50,包住,算下來,每月也能結餘5000以上了。 這次是外包到寧波,給神州數碼做一個外包專案。 哦,神碼,我的神碼。 才到寧波的第一天,就已讓我產生了厭煩的心理。 甲乙丙丁,點到誰是誰。很不幸,我們屬於那個丁,外包給了丙,

JAVA識別身份證號碼H5識別身份證號碼tesseract-ocr識別

背景介紹 上一篇博文介紹瞭如何使用JAVA識別身份證號碼,假設在截取了身份證號碼資訊的情況下,這一篇博文主要討論一下思路吧,技術方面都是大家會的。 思路分析 H5拍照上傳 —> 服務端擷取身份證號碼 —–> 識別號碼 —–>

NFC身份證識別

1、首先需要了解身份證閱讀器的工作原理與流程。 詳見《居民身份證驗證安全控制模組介面技術規範》,標準GA 467-2004。 大致原理圖: sam_v:驗證安全控制模組(secure access and control module for validation) 2、並行與序列: 序列介面:

java泛型的使用在例項化物件時不指定泛型則自動識別為object

<span style="font-size:18px;">/** * *在定義類時,定義泛型 */ public class People <T>{ private

手把手的操作——用java呼叫科大訊飛的離線語音識別dll實現離線識別JNA實現

上一篇講到了最難的地方,引數的轉換,這裡單獨寫出來 ** 三、引數的轉換(難點) ** 注:本文是以訊飛提供的C語言例子作為模板改寫,語音來源於檔案 1、先分析提供的例子 本人使用的是VS2010 下載連結連結:https://pan.baidu.com/s/

語法分析器 識別多錯誤 Java

 在上次實驗的基礎上進行改進,能夠識別多個錯誤,本文的只進行了部分資料的測試,所以可能會有其他錯誤識別不出來 部分缺失的程式碼請參考我之前寫的部落格,可以檢視完整的程式碼 package codescanner; import java.util.ArrayList;