public StringBuilder scanImage(Bitmap bp)
{
StringBuilder sb=null;
TextRecognizer tcx = new
TextRecognizer.Builder(getApplicationContext()).build();
if (!tcx.isOperational())
{
Toast.makeText(getApplicationContext(), "could not get text", Toast.LENGTH_SHORT).show();
} else
{
Frame fame = new Frame.Builder().setBitmap(bp).build();
SparseArray<TextBlock> items = tcx.detect(fame);
sb = new StringBuilder();
for (int i = 0; i < items.size(); ++i)
{
TextBlock mytext = items.valueAt(i);
sb.append(mytext.getValue());
sb.append("\n");
}
}
return sb;
}
这是我的代码。我正在使用移动谷歌视觉 API。我只是传递图像位图进行扫描,但此方法以错误的顺序返回扫描的文本。请告诉我如何以正确的顺序获取文本。提前谢谢你
最佳答案
未按顺序提供检测到的 block 。您将需要检查每个文本 block 的位置并进行一些数学运算来排列它们。
使用myText.getBoundingBox()
、myText.getCornerPoints()
等方法找到文本 block 的位置。
关于java - 离线谷歌移动视觉 API 扫描图像时出现错误的文本序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53591219/