美文网首页
腾讯云OCR-通用印刷体识别

腾讯云OCR-通用印刷体识别

作者: Miracle_任 | 来源:发表于2018-07-30 11:21 被阅读0次

    最近公司项目用到了ocr的通用印刷体识别技术,看了很多资料,也从网上找了很多前辈的经验,最后决定用腾讯云的OCR。
    在这里和各位小伙伴分享一下经验,准备工作这里不多做赘述,按照文档去做就OK。
    下面说一下当时踩的坑:
    腾讯云ocr分为两种方式,一种是url另一种是imge。
    url方式相信大家很容易就能ok,也没有什么太多的坑。那么下面说说image方式
    当时做的时候,看到文档里一下子就蒙了,压根不知道在搞什么,后来查了一些资料才搞懂,然后按照文档里的格式自己去拼接,搞了一个多小时终于拼接好了之后,运行,报错!
    接下来一点点的去检查自己拼接哪里不对,也从网上找了资料,发现这方面资料几乎没有。
    然后自己在想有没有不用自己拼接的方式,终于皇天不负有心人,让我找到了!
    原来AFN内部已经帮我们做好了,做了将近4个小时,终于搞定。好了,话不多说,上代码:

        NSData *imageData = UIImagePNGRepresentation(photo);
        NSData *dataImage = UIImageJPEGRepresentation(photo,0.5);
        NSLog(@"压缩前----%lu\n压缩后----%lu",([imageData length]/1000),([dataImage length]/1000));
    //在这里我对图片进行了压缩,基本上3M左右的图片压缩完后在200K左右,图片清晰度不受影响。
     AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
        //    manager.requestSerializer.timeoutInterval = 20;
        [manager.requestSerializer setValue:@"你的签名" forHTTPHeaderField:@"Authorization"];
        [manager.requestSerializer setValue:@"recognition.image.myqcloud.com" forHTTPHeaderField:@"Host"];
        
        [manager POST:@"http://recognition.image.myqcloud.com/ocr/general" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
            
            [formData appendPartWithFormData:dataImage name:@"image"];
            [formData appendPartWithFormData:[@"youAppid" dataUsingEncoding:NSUTF8StringEncoding] name:@"appid"];
            [formData appendPartWithFormData:[@"" dataUsingEncoding:NSUTF8StringEncoding] name:@"bucket"];
            
            
        } progress:^(NSProgress * _Nonnull uploadProgress) {
            
            NSLog(@"%f",1.0 * uploadProgress.completedUnitCount/uploadProgress.totalUnitCount);
           
            
        } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            NSLog(@"上传成功---%@",responseObject);
    //        finished(responseObject,nil);
            
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            NSLog(@"上传失败---%@",error);
            NSLog(@"---%@",task);
         //   finished(nil,error);
        }];
    

    对于上面用到的签名和appid这个在官方平台按照文档去做就好了,有什么不懂得欢迎留言。
    欢迎大家多多提出意见,互相学习,互相进步!

    相关文章

      网友评论

          本文标题:腾讯云OCR-通用印刷体识别

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