2012-09-12 34 views
2

我需要我的应用程序通过相机读取文本。我知道有Tesseract库这样做,但我真的更喜欢如果有一个应用程序可以处理Intents通过相机读取文本,就像Xzing用于读取QR码。通过Intent使用基于Tesseract的OCR

有没有这样的应用程序?

回答

1

目前Google Play上还没有应用程序可以这么做。

我已经考虑过创建一个,但是对于这样一个应用程序的可能的用例变化比扫描QR码更多。有不同的可能的方案:

  • 车牌识别
  • 承认用于LCD 7段显示器
  • 韩语OCR
  • OCR为程式化文本
  • OCR与阴影或不均匀的照明

不同的场景对如何处理图像提出了挑战。通过Intent对这样的应用程序的请求可能需要至少指定用于预处理图像以及要使用的语言/训练数据文件的阈值类型。

+0

我只是想认识的书面小时,如“19 :45“等。我已经完成了自己的实现,但是在QR码上使用XZing等标准实现会很好。 – razielsarafan

0

我刚刚创建了一个应用程序,该应用程序使用相机拍摄照片,裁剪照片并返回识别的文本作为结果。

在你的应用程序,你可以使用下面的代码:

PackageManager pm = getPackageManager(); 
    try { 
     pm.getPackageInfo("sunbulmh.ocr", PackageManager.GET_ACTIVITIES); 

     Intent LaunchIntent = pm.getLaunchIntentForPackage("sunbulmh.ocr"); 
     LaunchIntent.setFlags(0); 
     startActivityForResult(LaunchIntent,5); 

    } catch (NameNotFoundException e) { 
     Uri URLURI = Uri.parse("http://play.google.com/store/apps/details?id=sunbulmh.ocr"); 
     Intent intent = new Intent(Intent.ACTION_VIEW,URLURI); 
     startActivity(intent); 
    } 

然后,得到的结果在onActivityResult():

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (resultCode == RESULT_OK) { 
     if(requestCode == 5){ 
      String ocr_txt = data.getStringExtra(Intent.EXTRA_TEXT); 
      // ocr_txt contains the recognized text. 




     } 
    } 
}