當前位置:
首頁 > 知識 > C身份證識別相關技術

C身份證識別相關技術

最近研究C#相關的OCR技術,圖像識別一般C和C++這種底層語言做的比較多,C#主要是依託一些封裝好的組件進行調用,這裡介紹一種身份證識別的方法。

環境搭建

C身份證識別相關技術

在File類別下下載這個EXE,進行安裝,安裝後在目錄下能找相應組件,還有些應用的案例。

dll文件夾中的dll引用到C#項目中,x64,x86,tessdata對應OCR識別的類庫和語言庫,我tessdata中已添加中文語言包,將這三個文件夾放入程序執行文件夾中。

Demo

自己做的小Demo如圖:身份證圖片是百度上下載的

C身份證識別相關技術

不得不說這個類庫唯一弊端就是文字識別率太低,圖像識別效果也不太好

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.OCR;
using Emgu.CV.Structure;
using System.IO;

namespace EmguCV
{
public partial class Form1 : Form
{
Image imageThreshold;
public Form1
{
InitializeComponent;
pictureBox1.Enabled = false;
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
//第一個參數是語言包文件夾的地址,不寫默認在執行文件夾下
Tesseract _ocr = new Tesseract(@"", "chi_sim", OcrEngineMode.TesseractOnly);
_ocr.SetImage(imageThreshold);
_ocr.Recognize;
String text = _ocr.GetUTF8Text;
this.textBox1.Text = text;
}

private void pictureBox2_Click(object sender, EventArgs e)
{
OpenFileDialog of = new OpenFileDialog;
of.Title = "請選擇圖片";
if (of.ShowDialog == DialogResult.OK)
{
string file = of.FileName;
Image img = Image.FromFile(file);
pictureBox1.Image = img;
}
Bitmap bitmap = (Bitmap)this.pictureBox1.Image;
Image imageSource = new Image(bitmap);
Image imageGrayscale = imageSource.Convert;
imageGrayscale = randon(imageGrayscale);
imageThreshold = imageGrayscale.ThresholdBinary(new Gray(100), new Gray(255));
this.pictureBox2.Image = imageThreshold.ToBitmap;
}
///

/// 旋轉校正
///

/// ///
private Image randon(Image imageInput)//圖像投影旋轉法傾斜校正子函數定義
{
int nwidth = imageInput.Width;
int nheight = imageInput.Height;
int sum;
int SumOfCha;
int SumOfChatemp = 0;
int sumhang = new int[nheight];
Image resultImage = imageInput;
Image ImrotaImage;
//20度範圍內的調整
for (int ang = -20; ang < 20; ang = ang + 1) { ImrotaImage = imageInput.Rotate(ang, new Gray(1)); for (int i = 0; i < nheight; i++) { sum = 0; for (int j = 0; j < nwidth; j++) { sum += ImrotaImage.Data[i, j, 0]; } sumhang[i] = sum; } SumOfCha = 0; for (int k = 0; k < nheight - 1; k++) { SumOfCha = SumOfCha + (Math.Abs(sumhang[k] - sumhang[k + 1])); } if (SumOfCha > SumOfChatemp)
{
resultImage = ImrotaImage;
SumOfChatemp = SumOfCha;
}
}
return resultImage;
}

private void pictureBox1_Click(object sender, EventArgs e)
{

}
}
}

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優家 的精彩文章:

從 RequireJs 源碼剖析腳本載入原理
「CF787D」遺產(Legacy)-線段樹-優化Dijkstra
Android hook神器frida(一)
iOS多線程開發之NSThread

TAG:科技優家 |

您可能感興趣

身份證識別技術上線 減少證件信息登記失誤
IBM研究:消費者正在權衡生物識別、身份驗證和身份的未來關係
生物識別技術有望解決身份識別問題,讓身份識別更加的方便快捷
航空身份認證:生物識別技術大勢所趨?
人工智慧時代身份識別及其安全技術學術研討會成功舉辦
兼顧安全與便捷,微盾科技用指靜脈識別技術切入智能家居精準認證可信身份
面部識別技術鎖定槍擊案疑犯身份
通過足跡進行身份識別 AI 將身份驗證技術發揮到了極致
虹膜識別開啟「確認眼神時代」 識別身份更有保障
杜特爾特簽署身份識別系統法,菲律賓人將告別沒身份證的歷史
雕漆藝術品首配「身份證」
辛巴威大選將使用指紋識別技術確認選民身份
大快搜索與天鑰科技就大數據身份識別技術達成合作
解決VR內身份識別和支付,七鑫易維推出集成虹膜識別技術的眼球追蹤解決方案
全面應用身份證「網證」仍需法律賦權
手機掃描身份證車牌識別SDK
識別軟骨細胞有了新「身份證」
韓國機場投入手掌靜脈識別技術 坐飛機不需要帶身份證
DNA技術揭秘「外星人頭骨」真實身份
身份識別,「刷眼」更可靠