C身份證識別相關技術
最近研究C#相關的OCR技術,圖像識別一般C和C++這種底層語言做的比較多,C#主要是依託一些封裝好的組件進行調用,這裡介紹一種身份證識別的方法。
環境搭建在File類別下下載這個EXE,進行安裝,安裝後在目錄下能找相應組件,還有些應用的案例。
dll文件夾中的dll引用到C#項目中,x64,x86,tessdata對應OCR識別的類庫和語言庫,我tessdata中已添加中文語言包,將這三個文件夾放入程序執行文件夾中。
Demo自己做的小Demo如圖:身份證圖片是百度上下載的
不得不說這個類庫唯一弊端就是文字識別率太低,圖像識別效果也不太好
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
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) ///
/// private void pictureBox1_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
Image
imageGrayscale = randon(imageGrayscale);
imageThreshold = imageGrayscale.ThresholdBinary(new Gray(100), new Gray(255));
this.pictureBox2.Image = imageThreshold.ToBitmap;
}
///
///
private Image
{
int nwidth = imageInput.Width;
int nheight = imageInput.Height;
int sum;
int SumOfCha;
int SumOfChatemp = 0;
int sumhang = new int[nheight];
Image
Image
//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;
}
{
}
}
※從 RequireJs 源碼剖析腳本載入原理
※「CF787D」遺產(Legacy)-線段樹-優化Dijkstra
※Android hook神器frida(一)
※iOS多線程開發之NSThread
TAG:科技優家 |
※身份證識別技術上線 減少證件信息登記失誤
※IBM研究:消費者正在權衡生物識別、身份驗證和身份的未來關係
※生物識別技術有望解決身份識別問題,讓身份識別更加的方便快捷
※航空身份認證:生物識別技術大勢所趨?
※人工智慧時代身份識別及其安全技術學術研討會成功舉辦
※兼顧安全與便捷,微盾科技用指靜脈識別技術切入智能家居精準認證可信身份
※面部識別技術鎖定槍擊案疑犯身份
※通過足跡進行身份識別 AI 將身份驗證技術發揮到了極致
※虹膜識別開啟「確認眼神時代」 識別身份更有保障
※杜特爾特簽署身份識別系統法,菲律賓人將告別沒身份證的歷史
※雕漆藝術品首配「身份證」
※辛巴威大選將使用指紋識別技術確認選民身份
※大快搜索與天鑰科技就大數據身份識別技術達成合作
※解決VR內身份識別和支付,七鑫易維推出集成虹膜識別技術的眼球追蹤解決方案
※全面應用身份證「網證」仍需法律賦權
※手機掃描身份證車牌識別SDK
※識別軟骨細胞有了新「身份證」
※韓國機場投入手掌靜脈識別技術 坐飛機不需要帶身份證
※DNA技術揭秘「外星人頭骨」真實身份
※身份識別,「刷眼」更可靠