本文轉載自好基友upuptop:https://blog.csdn.net/pyfysf/article/details/86438769css
效果圖:html
以下爲文章正文:java
百度OCR接口使用總結:
以前總結一下關於百度OCR文字識別接口的使用步驟(Android版本 不帶包名配置 安全性弱).這邊博客主要介紹,百度OCR文字識別接口,官方推薦使用方式,受權文件(安全模式);。android
沒有百度帳號須要註冊一個百度帳號……https://passport.baidu.com/v2/?regjson
填寫相關信息(選擇文字識別須要包名)安全
填寫正確的包名微信
下載sdk https://ai.baidu.com/sdk#ocrapp
點擊查看應用詳情,下載License文件-Android(文字識別)ide
文件位置:
\aip-ocr-android-sdk-1.4.4\aip-ocr-android-sdk-1.4.4\libs\ocr-sdk.jar
將 libs 目錄下 armeabi,arm64-v8a,armeabi-v7a,x86 文件夾按需添加到 android studio 工程 src/main/jniLibs 目錄中
將License文件添加到assets文件夾裏面
<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"/>
獲取token代碼:
private void getToken() {
OCR.getInstance(mContext).initAccessToken(new OnResultListener<AccessToken>() {
@Override
public void onResult(AccessToken result) {
// 調用成功,返回AccessToken對象
final String token = result.getAccessToken();
Log.e("MainActivity", "MainActivity onResult()" + token);
mToken = token;
}
@Override
public void onError(OCRError error) {
// 調用失敗,返回OCRError子類SDKError對象
error.printStackTrace();
}
}, getApplicationContext());
}
識別圖片文字
public void getData(String filePath) {
if (TextUtils.isEmpty(this.mToken)) {
getToken();
}
// 通用文字識別參數設置
GeneralBasicParams param = new GeneralBasicParams();
param.setDetectDirection(true);
param.setImageFile(new File(filePath));
final StringBuffer sb = new StringBuffer();
// 調用通用文字識別服務
OCR.getInstance(this).recognizeGeneralBasic(param, new OnResultListener<GeneralResult>() {
@Override
public void onResult(GeneralResult result) {
// 調用成功,返回GeneralResult對象
for (WordSimple wordSimple : result.getWordList()) {
// wordSimple不包含位置信息
WordSimple word = wordSimple;
sb.append(word.getWords());
sb.append("\n");
}
// json格式返回字符串
//listener.onResult(result.getJsonRes());
Log.e("MainActivity", "MainActivity onResult() ::" + sb.toString());
Message msg = Message.obtain();
msg.what = 100;
msg.obj = sb.toString();
mHandler.sendMessage(msg);
}
@Override
public void onError(OCRError error) {
// 調用失敗,返回OCRError對象
int errorCode = error.getErrorCode();
Log.e("MainActivity", "MainActivity onError() ::" + errorCode);
error.printStackTrace();
}
});
}
本文的案例源碼下載地址:
https://download.csdn.net/download/pyfysf/10916124
百度官方相應api文檔地址
http://ai.baidu.com/docs#/OCR-API/top
http://ai.baidu.com/docs#/OCR-Android-SDK/top
若是文章有錯的地方歡迎指正,你們互相留言交流。習慣在微信看技術文章,想要獲取更多的Java資源的同窗,能夠關注微信公衆號:niceyoo