使用Google的Mobile Vision识别静态图像中的文字?

时间:2016-10-23 06:04:47

标签: android android-vision

我正在尝试使用谷歌的Mobile Vision API编写一个基本的ocr android应用程序,但我实际上很难让应用程序识别静态图像中的文本。我查看了codelabs教程,其他人的问题,即每个带有android-vision标签的stackoverflow问题,以及文档,但我仍然没有运气。我知道其他人问过类似的问题但是那里发布的答案没有用。

以下是我的代码的摘录

Bitmap photo = (Bitmap) extras.get("data");
        pictureOcrView.setImageBitmap(photo);
        Context context = getApplicationContext();
        TextRecognizer ocrFrame = new TextRecognizer.Builder(context).build();
        Frame frame = new Frame.Builder().setBitmap(photo).build();
        if (ocrFrame.isOperational()){
            Log.e(TAG, "Textrecognizer is operational");
        }
        SparseArray<TextBlock> textBlocks = ocrFrame.detect(frame);

        for (int i = 0; i < textBlocks.size(); i++) {
            TextBlock textBlock = textBlocks.get(textBlocks.keyAt(i));

            Log.e(TAG, "something is happening");
            }

我不明白这是什么问题。这不像是我的文字乱码,我根本就没有收到任何文字。当我使用为codelab教程运行的文本图片测试此应用程序时,我什么都没得到。似乎textBlock数组甚至没有被创建,但我不知道为什么。我知道我已经创建了框架,因为我仍然可以成功运行getHeight等其他框架方法,并且isOperational()已经返回true。

有关我做错的任何建议吗?

2 个答案:

答案 0 :(得分:2)

我刚遇到同样的问题。问题是你正在处理的图像不是整张照片只是一个缩略图(通过调用extras.get(&#34; data&#34;)获得)。要访问完整图像,您需要保存它然后使用它。有关如何操作的详细信息,请访问以下链接: https://developer.android.com/training/camera/photobasics.html

答案 1 :(得分:1)

就我而言。当我从相机或图库中获取位图时,该位图方向已经旋转。 TextRecognizer无法检测文本,因为位图已旋转。您必须旋转位图以更正方向。

您可以使用this评论

来旋转图片