Пример #1
0
        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
        }
Пример #2
0
        /// <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);
        }