Exemple #1
0
        /// <summary>
        /// 帳票認識する
        /// </summary>
        /// <param name="dicFileName"></param>
        /// <returns></returns>
        private int IdentifyFormBySDK(Image imgBinarization, string dicFileName)
        {
            int certainty = 0;
            // 定型帳票処理SDKコンポーネントのインスタンス取得
            IFormSDKComponent formSdk = FormSDKInterface.FormSDKFactory.GetFormSDK();

            // 辞書名配列の生成(要素1つだけ)
            List <String> dictNameList = new List <String>();

            dictNameList.Add(dicFileName);

            // 定型帳票処理パラメーターの設定
            FormSDKInterface.FormSDKParam param = new FormSDKInterface.FormSDKParam
            {
                identify_mode = FormSDKInterface.FormSDKIdentifyMode.FORM_IDENT_FINE,
                rotate_mode   = FormSDKInterface.FormSDKRotateMode.FORM_ROTATE_OFF,
                th_ident      = FormSDKInterface.FormSDKDefinition.FORM_TH_IDENT,
            };

            // 確信度の算出
            FormSDKInterface.FormSDKIdentResult result = formSdk.IdentifyFormFromFile(imgBinarization, param, dictNameList);

            // 結果へ格納
            certainty = result.certainty;

            return(certainty);
        }
Exemple #2
0
        private List <TransArea> ExtractCharArea(Image TargetImage, string dicFileName)
        {
            IFormSDKComponent formSdk = FormSDKInterface.FormSDKFactory.GetFormSDK();

            // 定型帳票辞書のロード
            FormSDKFormDict formDict = formSdk.LoadDict(dicFileName);

            // 定型帳票処理データの設定
            FormSDKDict dict = new FormSDKDict();

            dict.AddDict(formDict);

            // 定型帳票処理パラメーターの設定
            FormSDKParam param = new FormSDKParam()
            {
                identify_mode = FormSDKIdentifyMode.FORM_IDENT_FINE,
                rotate_mode   = FormSDKRotateMode.FORM_ROTATE_OFF,
                th_ident      = FormSDKDefinition.FORM_TH_IDENT,
            };

            // 認識対象領域情報データの設定(テンプレート項目設計より)
            List <FormSDKMasterInfo> masterInfoList = new List <FormSDKMasterInfo>();

            foreach (var v in this.picOrg.Frames.Items)
            {
                FormSDKArea area = new FormSDKArea()
                {
                    xs = (short)v.StartPoint.X,
                    ys = (short)v.StartPoint.Y,
                    xe = (short)v.EndPoint.X,
                    ye = (short)v.EndPoint.Y,
                };

                FormSDKMasterInfo masterInfo = new FormSDKMasterInfo()
                {
                    master_area  = area,
                    area_type    = FormSDKAreaType.FORM_AT_SOLID,
                    removal_mode = FormSDKRemovalMode.FORM_RM_OFF,
                };

                masterInfoList.Add(masterInfo);
            }
            // 帳票に対する認識対象文字領域の抽出処理
            counter.Start();
            var result = formSdk.ExtractCharArea(TargetImage, param, dict, masterInfoList);

            counter.End();

            List <FormSDKResult> resultList = result.resultList;

            this.picOrg.Image = result.eraseRuledLineImg;
            List <TransArea> transAreas = new List <TransArea>();

            transAreas.AddRange(resultList.Select(x => ConvertToTransArea(x)));

            return(transAreas);
        }
Exemple #3
0
 private FormSDKRectCrossInfo GetRectCrossInfo(string dicPath, IFormSDKComponent formSDK)
 {
     return(formSDK.GetRectCrossInfoFromFile(dicPath));
 }