Beispiel #1
0
        /// <summary>
        /// OCR 通用高精度印刷体识别(默认url)
        /// </summary>
        /// <param name="Image">图片</param>
        /// <param name="Type">1:url,2:base64</param>
        public static TencentOCRResult GeneralAccurateOCR(string Image, int?Type = 1)
        {
            try
            {
                enterpriseWeChatHelper.OCRFilter();

                Credential cred = new Credential
                {
                    SecretId  = ConfigurationUtil.TencentSecretId,
                    SecretKey = ConfigurationUtil.TencentSecretKey
                };
                ClientProfile clientProfile = new ClientProfile();
                HttpProfile   httpProfile   = new HttpProfile();
                httpProfile.Endpoint      = ("ocr.ap-guangzhou.tencentcloudapi.com");
                clientProfile.HttpProfile = httpProfile;

                OcrClient client = new OcrClient(cred, "ap-guangzhou", clientProfile);
                GeneralAccurateOCRRequest req = new GeneralAccurateOCRRequest();
                if (Type == null || Type == 1 || Type == 0)
                {
                    req.ImageUrl = Image;
                }
                else
                {
                    req.ImageBase64 = Image;
                }

                enterpriseWeChatHelper.SetHashIncr(1);//优先扣除库存
                GeneralAccurateOCRResponse resp = client.GeneralAccurateOCR(req).
                                                  ConfigureAwait(false).GetAwaiter().GetResult();

                return(new TencentOCRResult
                {
                    WordList = resp.TextDetections
                               .Select(s => new Word
                    {
                        text = s.DetectedText.Replace(" ", "").ToLower()
                    })
                               .Where(s => !string.IsNullOrEmpty(s.text))
                               .ToList()
                });
            }
            catch (Exception e)
            {
                if (e.Message != "操作Redis失败")//如果请求接口失败则加回来
                {
                    enterpriseWeChatHelper.SetHashIncr(-1);
                }
                throw new Exception(e.Message);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 本接口支持图像整体文字的检测和识别,返回文字框位置与文字内容。相比通用印刷体识别接口,准确率和召回率更高。
        /// </summary>
        /// <param name="req">参考<see cref="GeneralAccurateOCRRequest"/></param>
        /// <returns>参考<see cref="GeneralAccurateOCRResponse"/>实例</returns>
        public async Task <GeneralAccurateOCRResponse> GeneralAccurateOCR(GeneralAccurateOCRRequest req)
        {
            JsonResponseModel <GeneralAccurateOCRResponse> rsp = null;

            try
            {
                var strResp = await this.InternalRequest(req, "GeneralAccurateOCR");

                rsp = JsonConvert.DeserializeObject <JsonResponseModel <GeneralAccurateOCRResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }