2017-08-03 114 views
0

我试图实现Cloud Vision API(TEXT_DETECTION),我想获取所有文本,并从图像中获取顶点位置。这里有一个例子:Cloud Vision API Android-文本注释

enter image description here

我想4 “对象”。一,二,三和四与顶点位置。

这里是我的代码的响应部分:

final TextAnnotation text = batchResponse.getResponses() 
          .get(0).getFullTextAnnotation(); 

然后我就可以得到这样的信息:

text.getPages().get(0).getBlocks().get(0).getParagraphs().get(0).getWords().get(0).getSymbols().get(0) 

但是它似乎非常复杂。如何获取这些数据?

PS。这里是我的完整代码:

Feature desiredFeature = new Feature(); 

      desiredFeature.setType("TEXT_DETECTION"); 


       AnnotateImageRequest request = new AnnotateImageRequest(); 
       request.setImage(inputImage); 
       request.setFeatures(Arrays.asList(desiredFeature)); 


       BatchAnnotateImagesRequest batchRequest = 
         new BatchAnnotateImagesRequest(); 

       batchRequest.setRequests(Arrays.asList(request)); 

       BatchAnnotateImagesResponse batchResponse = 
         vision.images().annotate(batchRequest).execute(); 

       final TextAnnotation text = batchResponse.getResponses() 
         .get(0).getFullTextAnnotation(); 

回答

0

我想通了。而不是使用TextAnnotation我使用AnnotateImageResponse

List<AnnotateImageResponse> responses = batchResponse.getResponses(); 

       for (AnnotateImageResponse res : responses) { 

        // For full list of available annotations, see http://g.co/cloud/vision/docs 
        for (EntityAnnotation annotation : res.getTextAnnotations()) { 
         out.printf("Text: %s\n", annotation.getDescription()); 
         out.printf("Position : %s\n", annotation.getBoundingPoly()); 
        } 
       }