public override void CutPicture(ResetPictures reset) { //var originImages_cf = reset.originImages.Select(n => Identification.BytesColorFilter(n, 70)).ToList(); var image = reset.originImages[0]; var image_cf = Identification.BytesColorFilter(image, 70); #if DEBUG DEBUG_saveImage(image_cf); #endif var cutimages = Identification.BytesCutColumn(image_cf, 7); #if DEBUG DEBUG_save(cutimages); #endif this.cutImageNumber = cutimages.Count; cutimages.RemoveAt(6); cutimages.RemoveAt(5); cutimages.RemoveAt(4); cutimages.RemoveAt(3); cutimages.RemoveAt(2); //var jb = Identification.IdentifyImage(image_cf, ApiVersion.AccurateBasic); //base.CutPicture(reset); //var xx = 1; reset.rearrayImages.Add(Identification.MegerBytesRow(cutimages, 1)); #if DEBUG DEBUG_save(reset.rearrayImages); #endif }
/// <summary> /// 带姓名id的一页,绿色选中 /// </summary> /// <param name="path">图片路径</param> /// <returns>数据 /// Id int32 /// Name string /// Sex int32 男1女2 /// Years int32 /// MajorDiagnosisCoding string ICD-10疾病编码(旧) /// MajorDiagnosis string /// </returns> public static dynamic Name(string path) { dynamic ddata = new System.Dynamic.ExpandoObject(); var image = File.ReadAllBytes(path); var image_cf = Identification.BytesColorFilter(image, 70); string words_all = ""; try { var jb = Identification.IdentifyImage(image_cf, ApiVersion.AccurateBasic); StringWriter strWriter = new StringWriter(); StringBuilder sb = strWriter.GetStringBuilder(); foreach (var jd in jb["words_result"]) { string words = jd["words"].ToString(); sb.Insert(sb.Length, words); } words_all = sb.ToString(); } catch (NoApiTimesException e) { throw e; } catch (Exception e) { throw new NoFindContextException("找不到姓名页"); } var rId = new Regex(@"\d{8}"); var rg_1 = rId.Match(words_all).ToString(); if (rg_1 == "") { rId = new Regex(@"\d{7}"); rg_1 = rId.Match(words_all).ToString(); } if (rg_1 == "") { rId = new Regex(@"\d{6}"); rg_1 = rId.Match(words_all).ToString(); } ddata.CaseHistoryId = Convert.ToInt32(rg_1.ToString()); string words_d__id = words_all.Substring(words_all.IndexOf(rg_1) + rg_1.Length); var rg_2 = Regex.Match(words_d__id, @"\D*").ToString(); ddata.Name = rg_2; string words_d__name = (new Regex(@"\D*")).Replace(words_d__id, "", 1); var rg_3 = Regex.Match(words_d__name, @"[(男)?(女)?]\d*").ToString(); ddata.Sex = rg_3.Contains("男") ? 1 : 2;//男1女2 if (rg_3.Length >= 2) { ddata.Years = Convert.ToInt32(rg_3.Substring(1)); } int i_rg_3 = words_d__name.IndexOf(rg_3); var words_d__years = words_d__name.Substring(i_rg_3 + rg_3.Length); var rg_4 = Regex.Match(words_d__years, @"[A-Za-z0-9.]*").ToString(); ddata.MajorDiagnosisCoding = rg_4;// ICD-10疾病编码(旧) var words_d__majorDiagnosisCoding = words_d__years.Replace(rg_4, ""); string words_MajorDiagnosis_d = Regex.Match(words_d__majorDiagnosisCoding, @"\S*").Value; ddata.MajorDiagnosis = words_MajorDiagnosis_d; return(ddata); }