呼叫opencv庫進行身份證號碼識別主要流程

2021-07-09 13:13:19 字數 715 閱讀 2806

如題,就是對身份證拍照,處理相應**,識別出身份證號碼

這裡需要呼叫opencv庫。opencv庫包含了許多處理影象的函式,功能全面而且強大,相容多種語言。如何配置可以自行搜尋。

主要流程如下:

讀取**,轉化為灰度影象;

設定閾值,將灰度影象轉化為2值影象(即黑白圖);

將影象規範化,這個具體的size可以根據情況進行設定;

影象膨脹,將規範化的2值影象進行,因為之前進行了規範化,因此這裡膨脹的幅度可以設為定值;(膨脹就是將黑點擴大範圍,因此有字跡的地方將會連成一片,形成很多的contours)

呼叫函式findcontours()找出其中所有的contours,將返回乙個列表,得到每個人contour的位置;

由於身份證號碼所在位置固定,拍照方式合適,則可以根據contour的位置和其本身size,找到包含身份證號碼的contour;

然後將這一片從之前的2值影象裡分割出來,單獨處理;

身份證號碼有18位,需要將分割出來的這一塊再次劃分,分成18份,每份包含乙個數字;

接下來就是分類方法了。

可以是knn,也可以是svm,在opencv裡面都有呼叫介面。個人推薦knn,方法比較直觀,而且效果很不錯。

關於knn,它的訓練和測試資料都是二維列表,首先需要將(往往是二維矩陣形式)轉化為一維的列表表示,因此要求訓練資料和測試資料的的size要統一。

身份證號驗證

原文 身份證號驗證 public static boolean isidnumber string idnumber 定義判別使用者身份證號的正規表示式 15位或者18位,最後一位可以為字母 string regularexpression 1 9 d 18 19 20 d 0 1 9 10 11 ...

身份證號驗證

身份證號組成 17位數字 1位校驗碼 位址碼 前六位 出生日期碼 第七位至第十位 順序碼 第十五位至十七位 對同年同月同日生的人便定的順序號,順序號奇數為男生,偶數為女生 檢驗碼 第十八位 0 9 x var acity function iscarid sid d x i.test sid ret...

身份證號的檢測

ddddddyyyymmddxxsp共18位 公民身份號碼是特徵組合碼,由十七位數字本體碼和一位校驗碼組成。排列順序從左至右依次為 六位數字位址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。2 位址碼 表示編碼物件常住戶口所在縣 市 旗 區 的行政區劃 按gb t2260的規定執行。3 出...