J'utilise Firebase ML Kit sur un appareil Android pour la reconnaissance de texte en utilisant une caméra sans cliquer sur l'image. Je l'utilise en recevant des images et en obtenant des bitmaps à partir des images. Puis je passe les bitmaps dans la méthode de reconnaissance de texte. Mais le texte reconnu n'est pas précis. De plus, il change constamment mais ne donne jamais de résultats précis. Veuillez me dire ce que je fais de mal.
obtenir des cadres et des Bitmaps :
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();
}
la reconnaissance de texte :
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();
}
});
}