我正在尝试使用谷歌的Mobile Vision API编写一个基本的ocr安卓应用程序,但我实际上很难让应用程序识别静态图像中的文本.我查看了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.
关于我做错什么的任何建议?
解决方法
我刚遇到同样的问题.问题是你正在处理的图像不是整张照片只是一个缩略图(通过调用extras.get(“data”)获得).要访问完整图像,您需要保存它然后使用它.有关如何操作的详细信息,请访问以下链接:
https://developer.android.com/training/camera/photobasics.html
https://developer.android.com/training/camera/photobasics.html