百度OCR文字识别企业版 Object-C 识别两种类型 代码示例

前言:

关于OCR,也没有什么可说的、纵观国内,做的好的扫描SDK基本都是收费的,比如名片扫描王只对企业开发,个人开发者想做也是难啊,吐槽下国内公司环境只认可企业,对个人开发者可谓非常苛刻,不说了,因为项目中用到扫描图片识别文字的功能,查询最后选择百度接口,可惜也是收费的,无奈啊,先就这样吧,另外附百度接口地址:百度OCR文字识别企业版 ;


目标:

项目是iOS 版本,开发语言是Objective-C,不过看到官方给出的代码示例,这里也就不吐槽了,笔者总结官方的 2 和 3这两种模式:

2. 上传图片原文件;

3. 图片URl类型;

附图:



代码示例:

1. 上传图片

- (void)baiduOCR_ImageType_2 {
    
    NSString *apikey = @"7467580227e0XXXXXX"; //apikey 替换你自己的
    NSString *urlStr = @"http://apis.baidu.com/idl_baidu/baiduocrpay/idlocrpaid";
    
    NSDictionary *parameters = @{@"fromdevice": @"iOS", @"clientip": @"10.10.10.0",
                                 @"detecttype":@"LocateRecognize",@"imagetype":@"2"};
    
    NSData *imageData = UIImagePNGRepresentation(_postImage);
    
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
    manager.requestSerializer = [AFJSONRequestSerializer serializer];
    
    AFHTTPRequestSerializer *serializer = [AFHTTPRequestSerializer serializer];
    
    NSMutableURLRequest *request = [serializer multipartFormRequestWithMethod:@"POST" URLString:urlStr parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        [formData appendPartWithFileData:imageData name:@"image" fileName:@"www.codertopic.com.png" mimeType:@"image/png"];
    } error: nil];
    
    [request setValue:apikey forHTTPHeaderField:@"apikey"];
    AFHTTPRequestOperation *operation =
    [manager HTTPRequestOperationWithRequest:request
             success:^(AFHTTPRequestOperation *operation, id responseObject) {
                 NSLog(@"Success %@", responseObject);
                 
             } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                 NSLog(@"Failure %@", error.description);
                 
                 [SVProgressHUD dismissWithError:error.description];
             }];
    
    
    [operation start];
    
}

2.  图片URl

</pre><p><pre name="code" class="objc">-(void)baiduOCR_ImageType_3{
    NSString *apikey = @"7467580227e0ea1f3de17a437543038d"; //apikey 替换你自己的
    NSString *urlStr = @"http://apis.baidu.com/idl_baidu/baiduocrpay/idlocrpaid";
    
    NSDictionary *parameters = @{@"fromdevice": @"iOS", @"clientip": @"10.10.10.0",
                                 @"detecttype":@"LocateRecognize",@"imagetype":@"3",
                                 @"image":@"http://www.codertopic.com/wp-content/uploads/2016/01/ad-codertopic.png"};
    
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
    manager.requestSerializer = [AFJSONRequestSerializer serializer];
    
    AFHTTPRequestSerializer *serializer = [AFHTTPRequestSerializer serializer];
    NSMutableURLRequest *request = [serializer multipartFormRequestWithMethod:@"POST" URLString:urlStr parameters:parameters constructingBodyWithBlock:nil error:nil];
    [request setValue:apikey forHTTPHeaderField:@"apikey"];
    AFHTTPRequestOperation *operation =
    [manager HTTPRequestOperationWithRequest:request
             success:^(AFHTTPRequestOperation *operation, id responseObject) {
                 NSLog(@"Success %@", responseObject);
             } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                 NSLog(@"Failure %@", error.description);
             }];

    
    [operation start];
}

 
 


综上两种模式均可返回,不过识别度还是非常的粗糙,不过撮合用吧,百度,还是一个好公司,如果能免费或支持公益贴吧的话。

另若有朋友需要swift版本的话,可留言告知,有时间给大家补上。

关注码农话题:http://www.codertopic.com/
附效果图:



猜你喜欢

转载自blog.csdn.net/mapboo/article/details/50589663