通过Intent使用基于Tesseract的OCR

时间:2012-09-12 09:51:59

标签: android tesseract

我需要我的应用程序通过相机阅读文字。我知道有Tesseract库可以做到这一点,但我真的更喜欢是否有一个应用程序可以处理Intents通过Camera读取文本,就像Xzing读取QR码一样。

有这样的应用吗?

2 个答案:

答案 0 :(得分:1)

Google Play上目前没有可以执行此操作的应用。

我考虑制作一个,但这种应用程序的可能用例变化远远超过扫描QR码。有不同的可能情况:

  • 车牌识别
  • 识别LCD 7段显示器
  • 韩国OCR
  • OCR for stylized text
  • 带阴影或不均匀照明的OCR

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

答案 1 :(得分: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.




        }
    }
}