Я использую Firebase ML Kit на устройстве Android для распознавания текста с помощью камеры без нажатия на изображение.
Я использую его, получая кадры и получая растровые изображения из кадров.
Затем передача растровых изображений в метод распознавания текста.
Но признанный текст не является точным. Кроме того, оно постоянно меняется, но никогда не дает точных результатов.
Пожалуйста, дайте мне знать, что я делаю неправильно.
получение кадров и растровых изображений:
public void onSurfaceTextureUpdated(SurfaceTexture surface) {
frame = Bitmap.createBitmap(textureView.getWidth(), textureView.getHeight(), Bitmap.Config.ARGB_8888);
textureView.getBitmap(frame);
Bitmap emptyBitmap = Bitmap.createBitmap(textureView.getBitmap(frame).getWidth(), textureView.getBitmap(frame).getHeight(), textureView.getBitmap(frame).getConfig());
if (textureView.getBitmap(frame).sameAs(emptyBitmap)) {
// myBitmap is empty/blank
System.out.println(" empty !!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
} else {
System.out.println(" bitmap");
bitmap = textureView.getBitmap(frame);
runTextRecognition();
}
распознавание текста:
private void runTextRecognition() {
System.out.println(" text recognition!!!");
FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bitmap);
FirebaseVisionTextRecognizer recognizer = FirebaseVision.getInstance().getOnDeviceTextRecognizer();
recognizer.processImage(image).addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
@Override
public void onSuccess(FirebaseVisionText texts) {
System.out.println("Text recognized ::: " + texts);
textRecognized = true;
processTextRecognitionResult(texts);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
e.printStackTrace();
}
});
}