обложка текста внутри изображения с помощью FireBase - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь убедиться, что все записи покрыты предварительно загруженной фотографией. для этого я использую библиотеки firebase ml (на устройстве, а не в облаке API).

В настоящее время я пытаюсь с прямоугольником и задаю ему координаты, которые он читает из блока, вот так:

imageViewArray[i].setRight(blockFrame.right);
imageViewArray[i].setLeft(blockFrame.left);
imageViewArray[i].setTop(blockFrame.top);
imageViewArray[i].setBottom(blockFrame.bottom);

я не увидел ни одной ошибки, но ничего не изменилось в моем приложении .. где я не прав?

еще одна вещь : как я прочитал здесь getCornerPoint () createточка [] с осями x и y вокруг всех 4 углов ... могут ли они быть полезными для меня, чтобы создать представление изображения, расположенное в той же области?

это мой onStart () в MainActivity:

    protected void onStart() {
        super.onStart();
        FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bitmap);
        FirebaseVisionTextRecognizer textRecognizer = FirebaseVision.getInstance()
                .getOnDeviceTextRecognizer();

        final Task<FirebaseVisionText> result =
                textRecognizer.processImage(image)
                        .addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
                            @Override
                            public void onSuccess(FirebaseVisionText firebaseVisionText) {
                                // Task completed successfully
                                Integer i = 0;
                                resultText = firebaseVisionText.getText();
                                output = resultText;
                                tvResult.setText(output);
                                for (FirebaseVisionText.TextBlock block: firebaseVisionText.getTextBlocks()) {
                                    String blockText = block.getText(); //prende il testo e lo mette nella stringa
                                    Float blockConfidence = block.getConfidence(); //bho
                                    List<RecognizedLanguage> blockLanguages = block.getRecognizedLanguages(); //rileva la lingua
                                    Point[] blockCornerPoints = block.getCornerPoints(); //prende le coordinate della box
                                    Rect blockFrame = block.getBoundingBox();

                                    ImageView[] imageViewArray = new ImageView[50];
                                    imageViewArray[i] = new ImageView(context);
                                    imageViewArray[i].setBackgroundColor(Color.rgb(255, 0, 0));
                                    imageViewArray[i].setRight(blockFrame.right);
                                    imageViewArray[i].setLeft(blockFrame.left);
                                    imageViewArray[i].setTop(blockFrame.top);
                                    imageViewArray[i].setBottom(blockFrame.bottom);

                                    i++;
                                }
                            }
                        })
                        .addOnFailureListener(
                                new OnFailureListener() {
                                    @Override
                                    public void onFailure(@NonNull Exception e) {
                                        // Task failed with an exception
                                    }
                                });
}
...