最近研究C#相关的OCR技术,图像识别一般C和C++这种底层语言做的比较多,C#主要是依托一些封装好的组件进行调用,这里介绍三种身份证识别的方法。
一:调用大公司API接口,百度、云脉,文通科技都有相关的API介绍。
二:调用图像处理类库,EmguCV是OpenCV的一个跨平台的.Net封装,该封装也可以被编译到Mono平台和允许在Windows、Mac OS、Android、iPhone、iPad等多个平台上运行
三:调用Office2007 组件
一、证件识别API接口
以聚合数据中的API接口为例,因为官方API没有提供C#的调用方式,网址如下:证件识别接口
![基于c#身份证识别三种相关技术](http://codecloud.b0.upaiyun.com/wp-content/uploads/20160821_57b9c201d26e5.png)
/// <summary> /// 上传图片 /// </summary> /// <returns></returns> public static string CardUpload() { try { string appkey = "网站自己申请的key"; //配置您申请的appkey HttpPostedFile file = HttpContext.Current.Request.Files[0]; string url = "http://api2.juheapi.com/cardrecon/upload"; var parameters = new Dictionary<string, string>(); parameters.Add("key", appkey); parameters.Add("cardType", "2"); string result = HttpPostData(url, 60000, "pic", file.InputStream, parameters); JObject info = JObject.Parse(JObject.Parse(result)["result"].ToString()); var cardInfo = new { name = info["姓名"], card = info["公民身份号码"] }; return cardInfo.ToJson(); } catch (Exception ex) { return ex.ToString(); } } /// <summary> /// Post调用API /// </summary> /// <param name="url">api地址</param> /// <param name="timeOut">访问超时时间</param> /// <param name="fileKeyName">文件参数名</param> /// <param name="file">文件流</param> /// <param name="stringDict">参数列表</param> /// <returns>结果集</returns> private static string HttpPostData(string url, int timeOut, string fileKeyName, Stre