日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android studio ocr初级app开发问题汇总(含工程代码)

發布時間:2025/3/20 Android 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android studio ocr初级app开发问题汇总(含工程代码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  博客第一篇文章,稍作修改,增加文字介紹


?

  開發目的

    最近由于某些需求,需要在Android手機端實現OCR功能,大致為通過手機照相,識別出相片中的中文信息字段。但是由于新手光環+流程不熟悉,遇到了各種各樣的問題,準備在本文中敘述一下,最好能派上用場。

  開發環境

    Android studio 2.3.3 ?Windows下,測試手機Android4.4版本

  環境搭建

    搭建安卓OCR開發環境.  ?

    使用的google提供的OCR識別引擎,可以選擇多種語言。

    參考上述鏈接可以實現,最開始的搭建。這里需要注意的是:由于GitHub上的工程與當前新建的Gradle版本不匹配,導致android-maven錯誤,注意添加依賴。

  大文件拷貝

    由于OCR訓練好的文件比較大,以中文識別為例,50MB左右大小,需要將文件放置于手機的SD卡中,便于TessBaseApi對象初始化。(init()函數需要文件路徑,目前沒想到更好的方式)。

  本文提出的解決方式:首先將chi_sim.traineddata文件放入asset文件夾中。在程序首次運行的時候,將文件拷貝到SD卡中,注意獲取SD卡讀寫權限??截惡瘮等缦?#xff1a;

  加入相機

  以上步驟順利的話,可以實現對圖片的文字進行識別功能。為了實現對照相機得到的相片進行識別,需要打開攝像機。

Intent getImageByCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(getImageByCamera,REQUST_ORIGINAL);

  REQUST_ORIGINAL是自己定義的常量值,用于接收時,與requestcode值比對,判斷是否為需要的數據。

  

1 @Override 2 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 3 super.onActivityResult(requestCode, resultCode, data); 4 if (resultCode == Activity.RESULT_OK && requestCode == REQUST_ORIGINAL){ 5    Bundle bdl = data.getExtras(); 6 Bitmap bmp = (Bitmap) bdl.get("data"); 7 ImageView im_camera = (ImageView)findViewById(R.id.img_camera); 8 im_camera.setImageBitmap(bmp); 9 mTess.clear(); 10 mTess.setImage(bmp); 11 String result = mTess.getUTF8Text(); 12 TextView txtget = (TextView)findViewById(R.id.txt_get); 13 txtget.setText(result); 14 } 15 }

?  在回調函數里,處理返回的圖片數據,就可以實現初步的圖片文字識別。但是這樣返回的圖片數據為縮略圖,清晰的很低。如果想要對原始圖片進行處理的話,需要換一種圖片獲取的方式。

首先,調用相機的時候,添加圖片為文件存儲的路徑。

1 Intent getImageByCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 2 Uri uri; 3 if(Build.VERSION.SDK_INT>=24) 4 { 5 File g= new File(picPath);//測試錯誤 6 try { 7 g.createNewFile(); 8 } catch (IOException e) { 9 e.printStackTrace(); 10 } 11 uri = FileProvider.getUriForFile(this,"xueyu404",g); 12 }else{ 13 uri = Uri.fromFile(new File(picPath)); 14 } 15 16 getImageByCamera.putExtra(MediaStore.EXTRA_OUTPUT,uri); 17 startActivityForResult(getImageByCamera,REQUST_ORIGINAL);

  PicPath為String變量,意義為相機圖片在sd卡上的存儲路徑。然后在回調函數里對圖片進行處理。

由于Android 7.0在跨應用數據調用增加了限制,需要使用FileProvider獲取uri,具體FileProvider配置參考一下鏈接

http://blog.csdn.net/hehe26/article/details/52921056

1 if (resultCode == Activity.RESULT_OK && requestCode == REQUST_ORIGINAL){ 2 FileInputStream fis = null; 3 try{ 4 Log.e("sdpath2",picPath); 5 fis = new FileInputStream(picPath); 6 Bitmap bm = BitmapFactory.decodeStream(fis); 7 ImageView im_camera = (ImageView)findViewById(R.id.img_camera); 8 im_camera.setImageBitmap(bm); 9 mTess.setImage(bm ); 10 String result = mTess.getUTF8Text(); 11 TextView txtget = (TextView)findViewById(R.id.txt_get); 12 txtget.setText(result); 13 }catch (FileNotFoundException e){ 14 e.printStackTrace(); 15 }finally { 16 try { 17 fis.close(); 18 } catch (IOException e) { 19 e.printStackTrace(); 20 } 21 } 22 } 23 else { 24 Toast.makeText(this,"沒有拍到照片",Toast.LENGTH_SHORT).show(); 25 }

    運行效率

    通過上述的過程,可以完成,基本的文字識別的功能。但仍然存在著不能忽略的問題。

    一,使用縮略圖進行識別的時候,運行速率可以接受,對于特別大的文字識別還可以。但是由于圖片被壓縮過,如果圖片中存在比較小的文字基本不能識別。

    二,使用后面提到的原始圖片進行識別的話,由于手機的計算能力有限,識別的計算過程相當耗時。識別過程要放到另外的線程中單獨運行,否則會卡死UI線程,假死。但是即使新建線程,需要的時間也遠超用戶的忍耐限度。

    改進優化

    由于圖片原圖比較大的原因,對整個圖片進行識別的效果也不理想。所以本文建議在拍攝照片之后,用戶用手指圈定識別區域文字。圈定區域 的控件,見我的另外一篇博客

    Android 通過觸摸動態地在屏幕上畫矩形

    此外,識別過程,控件初始化過程比較耗時,放置在UI線程中卡頓不可忍耐。本文采用線程池的方式,處理上述兩個過程。

    最終效果圖

    

      先點擊相機拍照按鈕,拍要識別的照片,再點擊選取區域按鈕,用手指畫一個矩形框,圈好識別區域(如果矩形沒畫好可以再點擊選取區域重新畫),

最后點擊文字識別等待結果顯示。

工程代碼鏈接:https://github.com/dutxueyu/Android_ocr_app

  

?

轉載于:https://www.cnblogs.com/xueyudlut/p/7156218.html

總結

以上是生活随笔為你收集整理的Android studio ocr初级app开发问题汇总(含工程代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 好吊视频一区二区三区四区 | 精品国产99一区二区乱码综合 | 国产一级片免费在线观看 | 欧美一级艳片视频免费观看 | 爱情岛论坛永久入址测速 | 国产精品一级无码 | 成人精品国产 | 爽爽影院在线 | 非洲黄色大片 | 国产无遮挡一区二区三区毛片日本 | 国产成人自拍网 | 日韩精品成人一区二区在线 | 国产香蕉97碰碰碰视频在线观看 | 国产精品69久久久久 | 女尊高h男高潮呻吟 | 青草综合| 伊人婷婷综合 | 老妇高潮潮喷到猛进猛出 | 亚洲制服丝袜诱惑 | 麻豆传媒网 | 97性视频 | 天天碰免费视频 | 91玉足脚交嫩脚丫在线播放 | 妇女一级片 | 黄色网页在线播放 | 自拍视频一区 | 777奇米视频 | 污污视频网站在线免费观看 | 成人p站在线观看 | 伊人ab | a级片在线看 | 麻豆视频二区 | 爱情岛黄色 | 国产1区2区3区中文字幕 | 日韩特级片 | 国产模特av私拍大尺度 | 日日碰狠狠添天天爽 | 男女床上拍拍拍 | 手机成人免费视频 | 欧美劲爆第一页 | 自拍 亚洲 欧美 | a毛片基地 | 日韩一区二区视频在线播放 | 日韩美女做爰高潮免费 | 亚洲色图在线观看视频 | 亚洲AV第二区国产精品 | 在线观看免费视频黄 | 亚洲咪咪 | 国产成人久久精品 | 国产精品伦一区二区三区 | jizzjizz中国精品麻豆 | 国家队动漫免费观看在线观看晨光 | 欧美日日 | 日日麻批免费视频播放 | 最新中文字幕2019 | 国产免费黄色片 | 爱情岛论坛永久入址在线 | 国产免费久久久 | 91天堂素人| 国产偷v国产偷v亚洲高清 | 美女在线播放 | 可以免费看av的网址 | www.日本在线视频 | 国产精品夜夜嗨 | 精品一区在线 | 超碰在线国产97 | 男生和女生一起搞鸡 | 黄瓜视频色版 | 日本美女黄视频 | 亚洲人精品午夜射精日韩 | 日本少妇做爰全过程毛片 | 成人羞羞国产免费动态 | 欧美野外猛男的大粗鳮 | 欧美黄片一区二区三区 | 亚洲精品色图 | 亚洲m码 欧洲s码sss222 | 成人在线中文字幕 | 操欧美老逼 | 人妻少妇偷人精品久久性色 | 操丰满女人 | 久久伊人一区二区 | 亚洲播播 | 精品国产乱子伦一区二区 | 小香蕉影院 | 日本在线黄色 | 精品女同一区二区 | 欧美激情成人在线 | 国产一级二级三级在线 | 成人av无码一区二区三区 | 黄色小说在线观看视频 | av在线资源观看 | 国产卡一卡二 | 精品久久蜜桃 | 久久精品第一页 | 24小时日本在线www免费的 | 日韩va视频 | 国产又粗又猛又色 | 久久激情婷婷 | 日本少妇裸体做爰高潮片 |