java - 有没有办法用 MLKit 检测文本的大小

标签 java android android-studio ocr firebase-mlkit

我一直在使用 Firebase MLkit 来检测图像中的文本,我需要一种方法来弄清楚如何检测文本的大小。我意识到 Kotlin 有办法做到这一点,但我正在使用 Java 工作,所以我一直在寻找一种在 android studio 上用 Java 做到这一点的方法。

我想我需要在下面的检测文本方法中添加一些内容:

private void detectTextFromImage()
    {
        FirebaseVisionImage firebaseVisionImage = FirebaseVisionImage.fromBitmap(imageBitmap);
        FirebaseVisionTextDetector firebaseVisionTextDetector = FirebaseVision.getInstance().getVisionTextDetector();
        firebaseVisionTextDetector.detectInImage(firebaseVisionImage).addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
            @Override
            public void onSuccess(FirebaseVisionText firebaseVisionText) {
                displayTextFromImage(firebaseVisionText);
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(PatientActivity.this, "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });
    }

谢谢

最佳答案

我找不到 ML 套件中内置的方法来提取文本大小,但解决方法是获取线条或元素的框架并计算其高度:

// Image recognition stuff...

List<FirebaseVisionText.TextBlock> blocks = visionText.getTextBlocks();

for (FirebaseVisionText.TextBlock textBlock : visionText.getTextBlocks()) {
    for (FirebaseVisionText.Line line : textBlock.getLines()) {
        Rect frame = line.getBoundingBox();
        float fontSize = frame.bottom - frame.top;

        // Do something with fontSize, e.g. add to a list
    }
}

请注意,根据图像拍摄的角度,某些文本可能会显得更大,因此会有更大的边界框,因此只有当图像正面拍摄到文本时,这才是准确的。

希望这有帮助! (抱歉我来晚了一点)

关于java - 有没有办法用 MLKit 检测文本的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60480454/

相关文章:

java - 从java voip开始

android - 似乎无法解决联系人选择器中的语法错误

android - speakToUser 未在 Eclipse 中定义

java - 无法理解如何使用 Android AWS SDK

android - 从 1.5 更新到 Android Studio 2.0 后,ndk 语法突出显示不起作用或可能被破坏

git - 从 Android Studio 创建 GitHub pull 请求会出现错误

java - 访问者模式可以包含一些状态吗?

Java byte[] 指针转换

java - JDBC:如何读取MySQL点格式

android - 如何规范化android中的视频(mp4)文件?