近期由于工作内容的需要,我要给项目集成一个图片文字识别功能,据说百度的不错,所以今天写一个关于百度OCR的集成总结,以便以后再次使用不用去看官方文档。
首先肯定是要在百度管理平台注册账号并登录,然后照常去添加应用,如下图
创建成功后查看应用详情,下载下方画框的license文件,备用
然后现在就是去下载SDK,解压完是这样子
这时候打开你的项目,将SDK中的libs里的ocr-sdk.jar
放到app目录下的libs里面,之后在app下的src里面的main包里面创建一个assets包和一个jniLibs包,将你之前下载的license放到assets中,再将之前下载的SDK里的libs文件夹里面的四个文件统一复制放入jniLibs包中,如下图
之后右键项目导入SDK中的UI模块
选中ocr_ui,并点击确定,之后会弹出来几个警告
也很简单,把其中的compile改成implementation就行了
如果还报错的话,你就把ocr_ui的SDK版本调整到app的SDK版本就行,接着要在app的gardle的dependencies中添加implementation project(":ocr_ui")
项目依赖
下面是我app的gradle的配置
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.myapplication"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation project(":ocr_ui")
}
然后添加权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
然后剩下的就是设置点击事件,跳转拍照,发送照片,收到数据进行回调,这里放MainActivity类和自定义OCRManager类以及和Ui模块的获取图片路径类和最后的页面布局。
public class MainActivity extends AppCompatActivity {
final static String TAG = "OCR";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);