baiduTextReader

来自于:开发者立即使用

概述

baiduTextReader模块封装了百度云文本识别的sdk(文字识别,网图文字识别,银行卡识别,行驶证识别,驾驶证识别,车牌识别),识别准确率非常高,包括

  • 通用文字识别(含文字位置信息)
  • 通用文字识别(不含文字位置信息)
  • 通用文字识别(含生僻字)
  • 网络图片文字识别
  • 银行卡识别
  • 行驶证识别
  • 驾驶证识别
  • 车牌识别

此模块需要IOS 8.0以上系统或者android 4.0以上系统,请在云编译高级设置中进行配置

使用此模块前,需要先去百度的AI开放平台,创建应用,填写ios和安卓的包名,获取apiKey和secretKey。
apiKey和secretKey是本模块必须要用到的参数,可以在config文件中配置,或者在调用方法的时候设置,两种方法都可以。
config文件配置示例

<feature name="baiduTextReader">
        <param name="apiKey" value="aP0XNtXltVyv8hDfI2bRxANL"/>
        <param name="secretKey" value="4pAD985lbtobCp5Iry32YGfyWr59tOsH"/>
 </feature>

百度AI开放平台配置简单图解:



requestToken

向百度云请求token,调用识别前需要请求token,可以请求一次,也可以每次调用前都请求。

requestToken(params, callback(ret, err))

params

apiKey:

  • 类型:字符串
  • 描述:(可选)在百度AI开放平台创建应用获得的apiKey,如果不传,自动从config文件获取

secretKey:

  • 类型:字符串
  • 描述:(可选)在百度AI开放平台创建应用获得的secretKey,如果不传,自动从config文件获取

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段
    {
      token:   //获取到的token值
    }
    

err:

  • 类型:JSON对象
  • 内部字段
    {
      code: //整数类型;错误码,取值范围如下
             //0:apiKey或者secretKey未设置
             //-1:异常型错误
      msg:  //字符串类型;错误描述
    }
    

示例代码

var baiduTextReader = api.require('baiduTextReader');
baiduTextReader.requestToken({

}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

recGeneral

通用文字识别(含文字位置信息)
recGeneral(params, callback(ret, err))

params

image:

  • 类型:字符串
  • 描述:(必选)要识别的图片的路径,安卓支持fs协议和绝对路径,IOS支持widget、fs协议和绝对路径,图片最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式

recognize_granularity:

  • 类型:字符串
  • 描述:(可选)是否定位单字符位置。
  • 取值范围:
      big:不定位(默认值)
      small:定位
    

language_type:

  • 类型:字符串
  • 描述:(可选)识别语言类型
  • 取值范围:
      CHN_ENG:中英文混合(默认值)
      ENG:英文
      POR:葡萄牙语
      FRE:法语
      GER:德语
      ITA:意大利语
      SPA:西班牙语
      RUS:俄语
      JAP:日语
    

detect_language:

  • 类型:字符串
  • 描述:(可选)是否检测语言。当前支持中文、英语、日语、韩语。
  • 取值范围:
      false:不检测(默认值)
      true:检测
    

vertexes_location:

  • 类型:字符串
  • 描述:是否返回文字外接多边形顶点位置,不支持单字位置
  • 取值范围:
      false:不返回(默认值)
      true:返回
    

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段
    {
      words_result_num:  //识别结果数,表示words_result的元素个数
      log_id:                        //唯一的log id,用于问题定位
      words_result: [      //定位和识别结果数组
          {
              words:           //识别结果字符串
              location:{
                  top:           //定位位置长方形顶点垂直坐标
                  width:       //定位位置长方形宽度
                  height:     //定位位置长方形高度
                  left:           //定位位置长方形左边水平坐标
              }
          },
          ...
      ]
    }
    

err:

  • 类型:JSON对象
  • 内部字段

    {
      code: //整数类型;错误码,取值范围如下
             //-1:异常型错误
             //110:Access token invalid or no longer valid.Access Token过期失效
             //283501:License file check error.授权文件不匹配
             //283502:App identifier unmatch.BundleId不匹配
             //283503:License file not exists.请确认aip.licence文件存在于assets文件夹中
             //283504:Network error.网络请求失败
             //283505:Server illegal response.服务器返回数据异常
             //283506:Load jni so library error.JNI加载异常
             //283601:Server authentication error.身份验证错误。
             //283602:Authentication time error.时间戳不正确,可能是设备时间异常。
             //283604:App identifier unmatch.错误的PackageName或者BundleId
             //283700:Server internal error.服务器内部错误
             //216015:module closed.模块关闭
             //216100:invalid param.非法参数
             //216101:not enough param.参数数量不够
             //216102:service not support.业务不支持
             //216103:param too long.参数太长
             //216110:appid not exist.APP ID不存在
             //216111:invalid userid.非法用户ID
             //216200:empty image.空的图片
             //216201:image format error.图片格式错误
             //216202:image size error.图片大小错误
             //216300:db error.DB错误
             //216400:backend error.后端系统错误
             //216401:internal error.内部错误
             //216500:unknown error.未知错误
             //216600:id number format error.身份证的ID格式错误
             //216601:id number and name not match.身份证的ID和名字不匹配
             //216630:recognize error.识别错误
             //216631:recognize bank card error.识别银行卡错误(通常为检测不到银行卡)
             //216632:ocr.unknown error
             //216633:recognize idcard error.识别身份证错误(通常为检测不到身份证)
             //216634:detect error.检测错误
             //216635:get mask error.获取mask图片错误
             //282000:logic internal error.业务逻辑层内部错误
             //282001:logic backend error.业务逻辑层后端服务错误
             //282100:image transcode error.图片压缩转码错误
    
      msg:  //字符串类型;错误描述
    }
    

示例代码1 ---- 从文件系统选取图片

var baiduTextReader = api.require('baiduTextReader');
baiduTextReader.recGeneral({
    image:'fs://image/test.jpg'
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

示例代码2 ---- 拍照识别

    api.getPicture({
        sourceType: 'camera',
        encodingType: 'jpg',
        mediaValue: 'pic',
        destinationType: 'url',
        allowEdit: true,
        quality: 50,
        targetWidth:2000,
        saveToPhotoAlbum: false
      }, function(ret, err) {
          if (ret)
          {
              alert(JSON.stringify(ret));
              if(ret.data &&  ret.data != '')
              {
                  var imgPath = ret.data;
                  var baiduTextReader = api.require('baiduTextReader');
                  baiduTextReader.recGeneral({
                      image:imgPath 
                  }, function(ret, err) {
                      if (ret) {
                          alert(JSON.stringify(ret));
                      } else {
                          alert(JSON.stringify(err));
                      }
                  });
              }   
          } else {
              alert(JSON.stringify(err));
          }
      });

补充说明

配合切图模块使用效果更好

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

recGeneralBasic

通用文字识别(不含文字位置信息)
recGeneralBasic(params, callback(ret, err))

params

image:

  • 类型:字符串
  • 描述:(必选)要识别的图片的路径,安卓支持fs协议和绝对路径,IOS支持widget、fs协议和绝对路径,图片最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式

language_type:

  • 类型:字符串
  • 描述:(可选)识别语言类型
  • 取值范围:
      CHN_ENG:中英文混合(默认值)
      ENG:英文
      POR:葡萄牙语
      FRE:法语
      GER:德语
      ITA:意大利语
      SPA:西班牙语
      RUS:俄语
      JAP:日语
    

detect_language:

  • 类型:字符串
  • 描述:(可选)是否检测语言。当前支持中文、英语、日语、韩语。
  • 取值范围:
      false:不检测(默认值)
      true:检测
    

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段
    {
      words_result_num:  //识别结果数,表示words_result的元素个数
      log_id:                        //唯一的log id,用于问题定位
      words_result: [      //定位和识别结果数组
          {
              words:           //识别结果字符串
          },
          ...
      ]
    }
    

err:

  • 类型:JSON对象
  • 内部字段

    {
      code: //整数类型;错误码,取值范围同recGeneral
    
      msg:  //字符串类型;错误描述
    }
    

示例代码1 ---- 从文件系统选取图片

var baiduTextReader = api.require('baiduTextReader');
baiduTextReader.recGeneralBasic({
    image:'fs://image/test.jpg'
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

示例代码2 ---- 拍照识别

    api.getPicture({
        sourceType: 'camera',
        encodingType: 'jpg',
        mediaValue: 'pic',
        destinationType: 'url',
        allowEdit: true,
        quality: 50,
        targetWidth:2000,
        saveToPhotoAlbum: false
      }, function(ret, err) {
          if (ret)
          {
              alert(JSON.stringify(ret));
              if(ret.data &&  ret.data != '')
              {
                  var imgPath = ret.data;
                  var baiduTextReader = api.require('baiduTextReader');
                  baiduTextReader.recGeneralBasic({
                      image:imgPath 
                  }, function(ret, err) {
                      if (ret) {
                          alert(JSON.stringify(ret));
                      } else {
                          alert(JSON.stringify(err));
                      }
                  });
              }   
          } else {
              alert(JSON.stringify(err));
          }
      });

补充说明

配合切图模块使用效果更好

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

recGeneralEnhanced

通用文字识别(含生僻字) ,这个功能百度不能免费试用,试用需交费 recGeneralEnhanced(params, callback(ret, err))

params

image:

  • 类型:字符串
  • 描述:(必选)要识别的图片的路径,安卓支持fs协议和绝对路径,IOS支持widget、fs协议和绝对路径,图片最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式

language_type:

  • 类型:字符串
  • 描述:(可选)识别语言类型
  • 取值范围:
      CHN_ENG:中英文混合(默认值)
      ENG:英文
      POR:葡萄牙语
      FRE:法语
      GER:德语
      ITA:意大利语
      SPA:西班牙语
      RUS:俄语
      JAP:日语
    

detect_language:

  • 类型:字符串
  • 描述:(可选)是否检测语言。当前支持中文、英语、日语、韩语。
  • 取值范围:
      false:不检测(默认值)
      true:检测
    

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段
    {
      words_result_num:  //识别结果数,表示words_result的元素个数
      log_id:                        //唯一的log id,用于问题定位
      words_result: [      //定位和识别结果数组
          {
              words:           //识别结果字符串
          },
          ...
      ]
    }
    

err:

  • 类型:JSON对象
  • 内部字段

    {
      code: //整数类型;错误码,取值范围同recGeneral
    
      msg:  //字符串类型;错误描述
    }
    

示例代码1 ---- 从文件系统选取图片

var baiduTextReader = api.require('baiduTextReader');
baiduTextReader.recGeneralEnhanced({
    image:'fs://image/test.jpg'
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

示例代码2 ---- 拍照识别

    api.getPicture({
        sourceType: 'camera',
        encodingType: 'jpg',
        mediaValue: 'pic',
        destinationType: 'url',
        allowEdit: true,
        quality: 50,
        targetWidth:2000,
        saveToPhotoAlbum: false
      }, function(ret, err) {
          if (ret)
          {
              alert(JSON.stringify(ret));
              if(ret.data &&  ret.data != '')
              {
                  var imgPath = ret.data;
                  var baiduTextReader = api.require('baiduTextReader');
                  baiduTextReader.recGeneralEnhanced({
                      image:imgPath 
                  }, function(ret, err) {
                      if (ret) {
                          alert(JSON.stringify(ret));
                      } else {
                          alert(JSON.stringify(err));
                      }
                  });
              }   
          } else {
              alert(JSON.stringify(err));
          }
      });

补充说明

配合切图模块使用效果更好

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

recBankCard

银行卡识别
recBankCard(params, callback(ret, err))

params

image:

  • 类型:字符串
  • 描述:(必选)要识别的图片的路径,安卓支持fs协议和绝对路径,IOS支持widget、fs协议和绝对路径,图片最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段
    {
      log_id:                        //唯一的log id,用于问题定位
      result: [             //定位和识别结果数组
          {
              bank_card_number:           //银行卡识别结果
              bank_name:                         //银行名,不能识别时为空
              bank_card_type:                 /银行卡类型,0:不能识别; 1: 借记卡; 2: 信用卡
          },
          ...
      ]
    }
    

err:

  • 类型:JSON对象
  • 内部字段

    {
      code: //整数类型;错误码,取值范围同recGeneral
    
      msg:  //字符串类型;错误描述
    }
    

示例代码1 ---- 从文件系统选取图片

var baiduTextReader = api.require('baiduTextReader');
baiduTextReader.recBankCard({
    image:'fs://image/test.jpg'
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

示例代码2 ---- 拍照识别

    api.getPicture({
        sourceType: 'camera',
        encodingType: 'jpg',
        mediaValue: 'pic',
        destinationType: 'url',
        allowEdit: true,
        quality: 50,
        targetWidth:2000,
        saveToPhotoAlbum: false
      }, function(ret, err) {
          if (ret)
          {
              alert(JSON.stringify(ret));
              if(ret.data &&  ret.data != '')
              {
                  var imgPath = ret.data;
                  var baiduTextReader = api.require('baiduTextReader');
                  baiduTextReader.recBankCard({
                      image:imgPath 
                  }, function(ret, err) {
                      if (ret) {
                          alert(JSON.stringify(ret));
                      } else {
                          alert(JSON.stringify(err));
                      }
                  });
              }   
          } else {
              alert(JSON.stringify(err));
          }
      });

补充说明

配合切图模块使用效果更好

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

recVehicleLicense

行驶证识别
recVehicleLicense(params, callback(ret, err))

params

image:

  • 类型:字符串
  • 描述:(必选)要识别的图片的路径,安卓支持fs协议和绝对路径,IOS支持widget、fs协议和绝对路径,图片最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式

accuracy:

  • 类型:字符串
  • 描述:(可选)是否使用快速服务。
  • 取值范围:
      normal:使用快速服务,1200ms左右时延
      缺省或者其他值:使用高精度服务,1600ms左右时延
    

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段
    {
      words_result_num:  //识别结果数,表示words_result的元素个数
      log_id:                        //唯一的log id,用于问题定位
      words_result: [      //定位和识别结果数组
          {
              words:           //识别结果字符串
          },
          ...
      ]
    }
    

err:

  • 类型:JSON对象
  • 内部字段

    {
      code: //整数类型;错误码,取值范围同recGeneral
    
      msg:  //字符串类型;错误描述
    }
    

示例代码1 ---- 从文件系统选取图片

var baiduTextReader = api.require('baiduTextReader');
baiduTextReader.recVehicleLicense({
    image:'fs://image/test.jpg'
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

示例代码2 ---- 拍照识别

    api.getPicture({
        sourceType: 'camera',
        encodingType: 'jpg',
        mediaValue: 'pic',
        destinationType: 'url',
        allowEdit: true,
        quality: 50,
        targetWidth:2000,
        saveToPhotoAlbum: false
      }, function(ret, err) {
          if (ret)
          {
              alert(JSON.stringify(ret));
              if(ret.data &&  ret.data != '')
              {
                  var imgPath = ret.data;
                  var baiduTextReader = api.require('baiduTextReader');
                  baiduTextReader.recVehicleLicense({
                      image:imgPath 
                  }, function(ret, err) {
                      if (ret) {
                          alert(JSON.stringify(ret));
                      } else {
                          alert(JSON.stringify(err));
                      }
                  });
              }   
          } else {
              alert(JSON.stringify(err));
          }
      });

补充说明

配合切图模块使用效果更好

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

recDrivingLicense

驾驶证识别
recDrivingLicense(params, callback(ret, err))

params

image:

  • 类型:字符串
  • 描述:(必选)要识别的图片的路径,安卓支持fs协议和绝对路径,IOS支持widget、fs协议和绝对路径,图片最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段
    {
      words_result_num:  //识别结果数,表示words_result的元素个数
      log_id:                        //唯一的log id,用于问题定位
      words_result: [      //定位和识别结果数组
          {
              words:           //识别结果字符串
          },
          ...
      ]
    }
    

err:

  • 类型:JSON对象
  • 内部字段

    {
      code: //整数类型;错误码,取值范围同recGeneral
    
      msg:  //字符串类型;错误描述
    }
    

示例代码1 ---- 从文件系统选取图片

var baiduTextReader = api.require('baiduTextReader');
baiduTextReader.recDrivingLicense({
    image:'fs://image/test.jpg'
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

示例代码2 ---- 拍照识别

    api.getPicture({
        sourceType: 'camera',
        encodingType: 'jpg',
        mediaValue: 'pic',
        destinationType: 'url',
        allowEdit: true,
        quality: 50,
        targetWidth:2000,
        saveToPhotoAlbum: false
      }, function(ret, err) {
          if (ret)
          {
              alert(JSON.stringify(ret));
              if(ret.data &&  ret.data != '')
              {
                  var imgPath = ret.data;
                  var baiduTextReader = api.require('baiduTextReader');
                  baiduTextReader.recDrivingLicense({
                      image:imgPath 
                  }, function(ret, err) {
                      if (ret) {
                          alert(JSON.stringify(ret));
                      } else {
                          alert(JSON.stringify(err));
                      }
                  });
              }   
          } else {
              alert(JSON.stringify(err));
          }
      });

补充说明

配合切图模块使用效果更好

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

recLicensePlate

车牌识别
recLicensePlate(params, callback(ret, err))

params

image:

  • 类型:字符串
  • 描述:(必选)要识别的图片的路径,安卓支持fs协议和绝对路径,IOS支持widget、fs协议和绝对路径,图片最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段
    {
      log_id:                        //唯一的log id,用于问题定位
      words_result: [      //定位和识别结果数组
          {
              color:           //车牌颜色,如"blue"
              number:       //车牌号码,示例:"苏HS7766"
          },
          ...
      ]
    }
    

err:

  • 类型:JSON对象
  • 内部字段

    {
      code: //整数类型;错误码,取值范围同recGeneral
    
      msg:  //字符串类型;错误描述
    }
    

示例代码1 ---- 从文件系统选取图片

var baiduTextReader = api.require('baiduTextReader');
baiduTextReader.recLicensePlate({
    image:'fs://image/test.jpg'
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

示例代码2 ---- 拍照识别

    api.getPicture({
        sourceType: 'camera',
        encodingType: 'jpg',
        mediaValue: 'pic',
        destinationType: 'url',
        allowEdit: true,
        quality: 50,
        targetWidth:2000,
        saveToPhotoAlbum: false
      }, function(ret, err) {
          if (ret)
          {
              alert(JSON.stringify(ret));
              if(ret.data &&  ret.data != '')
              {
                  var imgPath = ret.data;
                  var baiduTextReader = api.require('baiduTextReader');
                  baiduTextReader.recLicensePlate({
                      image:imgPath 
                  }, function(ret, err) {
                      if (ret) {
                          alert(JSON.stringify(ret));
                      } else {
                          alert(JSON.stringify(err));
                      }
                  });
              }   
          } else {
              alert(JSON.stringify(err));
          }
      });

补充说明

配合切图模块使用效果更好

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本