美文网首页程序员
百度OCR模板识别API调用经验

百度OCR模板识别API调用经验

作者: ravenLu | 来源:发表于2019-10-30 10:56 被阅读0次

近期调试百度OCR模板识别API,一直返回如下错误:

  data =     {                    

       isStructured = 0;                   

      logId = 15724035...;                   

      templateSign = 25f7f.....;    };   

"error_code" = 216201;  

 "error_msg" = "image format error"; 

参考https://ai.baidu.com/docs#/iOCR-General-API/top 总是失败,后经过与各种联系,终于发现问题并解决

原因是:

1.base64编码,带有\r\n ,需要去掉

2.不需要使用urlencode

另外图片大小需要限制

以下是我伪代码:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"AA" ofType:@"jpg"];

        UIImage *image = [UIImage imageWithContentsOfFile:filePath];

         NSData*imageData = [self jpgDataWithImage:imagesizeLimit:1024000];

        NSData *data = UIImageJPEGRepresentation(image, 1.0f);

       NSString *imageString = [imageData base64EncodedStringWithOptions:0];

// templateSign是模板       access_token是接口请求下来的(参考百度OCR的API文档)

 NSDictionary *dic = @{@"image":imageString,@"templateSign":templateSign};                  NSString *url = [NSString stringWithFormat:@"https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise?access_token=%@",access_token];

// 。。。。然后请求

- (NSData*)jpgDataWithImage:(UIImage*)imagesizeLimit:(NSUInteger)maxSize {

    CGFloatcompressionQuality =1.0;

    NSData*imageData =nil;

    inti =0;

    do{

        imageData =UIImageJPEGRepresentation(image, compressionQuality);

        compressionQuality -=0.1;

        i +=1;

    }while(i <3&& imageData.length> maxSize);

    returnimageData;

}

相关文章

网友评论

    本文标题:百度OCR模板识别API调用经验

    本文链接:https://www.haomeiwen.com/subject/gccovctx.html