Android:如何在不拍照的情况下从相机中捕捉文字?

时间:2017-01-19 06:34:23

标签: android ocr

我想捕捉使用相机而不使用tess-two(在android和eclipse中)拍照的文本和数字。 我不想保存图像文件。

像这样的东西(它是在相机上实时捕捉):

OCR

我使用过tess-two,但我必须首先拍照然后拍摄文字。 (使用链接:https://stackoverflow.com/questions/19533273/best-ocr-optical-character-recognition-example-in-android

我已经使用了这个(https://www.codeproject.com/Articles/840623/Android-Character-Recognition)来创建我上传的图片之类的行为,但它也应该拍照。

那我怎么能实现呢?这可能吗?

3 个答案:

答案 0 :(得分:1)

或者,您可以使用免费的SDK来执行OCR而不拍任何图片:ABBYY Real-time Recognition SDK。它完成了为您管理视频流的所有工作。

免责声明:我为ABBYY工作。

答案 1 :(得分:0)

您可以轻松获取缩略图的位图,如android文档here中所示,但是根据您的问题,您似乎需要全尺寸图片位图,因此要获得完整尺寸的位图,您必须指向将相机存储到可以存储捕获图像的文件中。

要获取完整大小的位图,请尝试此

private String imagePath = "";

private void startCamera() {
    // create a collision-resistant file name
    String fileUniqueName= new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    String imageFileName = fileUniqueName + ".jpg";

    File storageDir = Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_PICTURES);
    imagePath = storageDir.getAbsolutePath() + "/" + imageFileName;
    File file = new File(imagePath);
    Uri outputFileUri = Uri.fromFile(file);

    Intent cameraIntent = new     Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);               
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
    startActivityForResult(cameraIntent, 1);
}

处理拍摄的图像

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1) {
        File tempFile = new  File(imagePath);
        if(tempFile.exists()){        
            Bitmap requiredBitmap = BitmapFactory.decodeFile(tempFile.getAbsolutePath());
        }
    }
}

此捕获的图像不会显示在图库中。

答案 2 :(得分:0)

<any>MyComponent