2017-08-03 3 views
0

クラウドビジョンAPI(TEXT_DETECTION)を実装しようとしています。すべてのテキストを取得したいと思い、画像から頂点の位置を取得します。クラウドビジョンAPI Android-テキスト注釈

enter image description here

私は4 "オブジェクト" を取得したい:ここでは一例です。 1つ、2つ、3つおよび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()); 
        } 
       }