【问题标题】:Using Google's Mobile Vision to recognize Text in a static image?使用 Google 的 Mobile Vision 识别静态图像中的文本?
【发布时间】:2016-10-23 06:04:46
【问题描述】:

我正在尝试使用 Google 的 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。

关于我做错了什么有什么建议吗?

【问题讨论】:

    标签: android android-vision


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      就我而言。当我从相机或画廊获取位图时,该位图方向已旋转。 TextRecognizer 无法检测文本,因为位图已旋转。您必须将位图旋转到正确的方向。

      你可以通过thiscomment 来旋转图片

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-09
        • 2017-04-30
        • 1970-01-01
        • 2017-12-24
        • 2019-04-08
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        相关资源
        最近更新 更多