C#百度OCR-身份证图片识别提取信息

C#百度OCR-⾝份证图⽚识别提取信息之前写了⼀篇利⽤百度OCR进⾏本地和⽹络图⽚识别⽂字的⽂章,。今天补充识别⾝份证图⽚的⽂章及demo
效果图展⽰:
请求参数
返回参数:
1.先引⽤AIPSDK.dll和Newtonsoft.Json.dll这两个DLL
然后在全局变量中声明变量,在窗体加载事件中new个类,传⼊API_KEY和SECRET_KEY
string API_KEY = "cohIahxAt7HveHLYSHYK6G5N";
string SECRET_KEY = "e8SAsDIWSK9NPUKviYiPQNlfaVDXQSY5";
private void frm_IDCardImgToTxt_Load(object sender, EventArgs e)
{
client = new Baidu.Aip.Ocr.Ocr(API_KEY, SECRET_KEY);
氯仿沸点client.Timeout = 60000;  // 修改超时时间
}
2.传⼊图⽚地址,识别图⽚,返回识别结果
/// <summary>
/
// ⾝份证识别
/// </summary>
/// <param name="filename"></param>
/// <returns></returns>
public string IdcardDemo(string filename)
{
bool cardjiaodu = cbjiaodu.Text == "true" ? true : false;
string cardzhengfan = cbzhengfan.Text == "front" ? "front" : "back";
bool cardfengxian = cbfengxian.Text == "true" ? true : false;
var image = File.ReadAllBytes(filename);
var idCardSide = "back";
/
/ 调⽤⾝份证识别,可能会抛出⽹络等异常,请使⽤try/catch捕获
var result = client.Idcard(image, idCardSide);
Console.WriteLine(result);
// 如果有可选参数
var options = new Dictionary<string, object>{
{"detect_direction", cardjiaodu.ToString()},
{"detect_risk", cardfengxian.ToString()},
{"id_card_side",cardzhengfan.ToString() }
};
// 带参数调⽤⾝份证识别
result = client.Idcard(image, idCardSide, options);
return result.ToString();
}
3.识别后的json内容进⾏输出
/// <summary>
/// 在界⾯上显⽰
/// </summary>
/// <param name="returnstr">json内容</param>
public void WriteTo(string returnstr)
{
try
{
ReturnJsonForCard rj = CYQ.Data.Tool.JsonHelper.ToEntity<ReturnJsonForCard>(returnstr);
AReturnJsonForCard acj = CYQ.Data.Tool.JsonHelper.ToEntity<AReturnJsonForCard>(rj.words_result);
string resultstr = "";
resultstr += "姓名:"+acj.姓名.words + "\r\n"+ "性别:" + acj.性别.words + "\r\n"+ "民族:" + acj.民族.words + "\r\n"+ "出⽣:" + acj.出⽣.words + "\r\n"+ "住址:        string card_direction = "";
if(rj.direction=="-1")
{
card_direction = "未定义";
}
else if (rj.direction == "0")
{
card_direction = "正向";
配电装置}
else if (rj.direction == "1")
{
card_direction = "逆时针90度";
}
else if (rj.direction == "2")
{
card_direction = "逆时针180度";
}
else if (rj.direction == "3")
{
card_direction = "逆时针270度";
}
resultstr += "图像⽅向:" + card_direction + "\r\n";
string card_image_status = "";
if(rj.image_status=="normal")
{
card_image_status = "识别正常";
}
else if(rj.image_status == "reversed_side")
{
card_image_status = "⾝份证正反⾯颠倒";
}
else if (rj.image_status == "non_idcard")
{
card_image_status = "上传的图⽚中不包含⾝份证";
}
else if (rj.image_status == "blurred")
{
card_image_status = "⾝份证模糊";
}
else if (rj.image_status == "other_type_card")地板线槽
{
card_image_status = "其他类型证照";
}
else if (rj.image_status == "over_exposure")
{
card_image_status = "⾝份证关键字段反光或过曝";
}
else if (rj.image_status == "unknown")
{
card_image_status = "未知状态";
}
人工抽脂
resultstr += "识别状态:" + card_image_status + "\r\n";
string card_risk_type = "";
if (rj.risk_type == "normal")
{
card_risk_type = "正常";
}
else if(rj.risk_type == "copy")
{
card_risk_type = "复印件";
}
else if (rj.risk_type == "temporary")
{
card_risk_type = "临时⾝份证";
}
else if (rj.risk_type == "screen")
{
card_risk_type = "翻拍";
}
else if (rj.risk_type == "unknown")
{
card_risk_type = "其他未知情况";
}
resultstr += "识别⾝份证类型:" + card_risk_type + "\r\n";
resultstr += "图⽚编辑⼯具:" + rj.edit_tool + "\r\n";
richTextBox1.Clear();
richTextBox1.AppendText(resultstr);
}
catch (Exception ex)
定厚机{
MessageBox.Show("解析出错,出错原因:" + ex.Message);
}
5.json字符串的类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 百度OCR
{
public class ReturnJsonForCard
{
public string log_id { get; set; }
public string direction { get; set; }
域名库public string image_status { get; set; }
public string risk_type { get; set; }
public string edit_tool { get; set; }
public string words_result_num { get; set; }
public string words_result { get; set; }
}
public class AReturnJsonForCard
{
public BReturnJsonForCard 住址 { get; set; }
public BReturnJsonForCard 出⽣ { get; set; }
public BReturnJsonForCard 姓名 { get; set; }
public BReturnJsonForCard 公民⾝份号码 { get; set; }        public BReturnJsonForCard 性别 { get; set; }
public BReturnJsonForCard 民族 { get; set; }
}
public class BReturnJsonForCard
{
public string location { get; set; }
public string words { get; set; }
}
}

本文发布于:2024-09-23 05:30:15,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/253205.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:识别   份证   参数   出错   证图
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议