基于百度OCR的Android圖片文字識別(三)

0、前言

本篇主要在百度OCR的Demo上小作文章。只采用通用文字識別。
基于百度OCR的Android圖片文字識別(一)
基于百度OCR的Android圖片文字識別(二)
代碼鏈接在文末。

1、分析

1.1 返回值類型

識別前

識別后

部分代碼

可以得知,識別結(jié)果為JSON類型的字符串。

{
"log_id":4121873516746509587,
"direction":0,
"words_result_num":3,
"words_result":[
        {"words":"科技說明文閱讀題命題規(guī)律分析"},
        {"words":"讓英語語法學(xué)習(xí)有趣起來"},
        {"words":"填報志愿須掌握的十大技巧"}
        ]
}

共有4個鍵值對,前3個鍵值對的值為整型,第4個鍵值對的值為一個JSONArray

1.2 取數(shù)據(jù)

1.2.1 導(dǎo)入jar包

這里采用org.json包,還可以用net.sf.json包等等。不過需要注意的是它們的方法會有些許差異。
org.json包復(fù)制進(jìn)目錄下的libs文件夾內(nèi)即可

1.2.2 MainActivity部分代碼

// 識別成功回調(diào),通用文字識別
        if (requestCode == REQUEST_CODE_GENERAL_BASIC && resultCode == Activity.RESULT_OK) {
            RecognizeService.recGeneralBasic(this, FileUtil.getSaveFile(getApplicationContext()).getAbsolutePath(),
                    new RecognizeService.ServiceListener() {
                        @Override
                        public void onResult(String result)  {
                            try{
//                                infoPopText(result);
                                Intent intent = new Intent(MainActivity.this,MyActivity.class);
                                intent.putExtra("result",result);
                                startActivity(intent);

                            }catch (Exception e){
                                e.printStackTrace();
                            }
                            
                        }
                    });
        }

將識別出的result傳給MyActivity

1.2.3 MyActivity部分代碼

        Intent intent = getIntent();

        try {
            JSONObject jsonObject = new JSONObject(intent.getStringExtra("result"));

            JSONArray array = jsonObject.getJSONArray("words_result");

            String lines = "";
            for(int i=0;i<array.length();++i){
                lines += (array.getJSONObject(i)).getString("words");
            }
            tv.setText(lines);

        } catch (JSONException e) {
            e.printStackTrace();
        }

首先是從MainActivity發(fā)送的Intent中取字符串result,并將其轉(zhuǎn)換為JSONObject類型的值jsonObject。
這里只關(guān)注識別的結(jié)果即"words_result",故利用getJSONArray方法取出"words_result"所對應(yīng)的JSONArray值array
然后遍歷array,取出"words"對應(yīng)的值即可,連成一個字符串。

2、效果展示

3、代碼鏈接

https://github.com/wangzhebufangqi/BaiduOCR/tree/master/OCRDemo2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容