我正在使用 firebase 文本识别来识别相机图像中的文本,但是有时当我拍照时,我会收到一条错误消息。我不明白错误是什么,我已经调整了图像的大小。
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// Ensure that there's a camera activity to handle the intent
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// Create the File where the photo should go
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
// Error occurred while creating the File
}
// Continue only if the File was successfully created
if (photoFile != null) {
photoURI = FileProvider.getUriForFile(this,
"com.ocr.test.ocr4.fileprovider",
photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
recreate();
}
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
imageBitmap = BitmapFactory.decodeFile(currentPhotoPath);
//resize
Bitmap resized = Bitmap.createScaledBitmap(imageBitmap, 500, 500, true);
//added below
FirebaseVisionImage firebaseVisionImage = FirebaseVisionImage.fromBitmap(resized);
FirebaseVisionTextDetector firebaseVisionTextDetector = FirebaseVision.getInstance().getVisionTextDetector();
firebaseVisionTextDetector.detectInImage(firebaseVisionImage).addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
@Override
public void onSuccess(FirebaseVisionText firebaseVisionText) {
getlocation();
createNewDiaglog(firebaseVisionText, resized);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(ImagesActivity.this, "flop", Toast.LENGTH_SHORT).show();
}
});
}
}
错误消息
在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.ActivityThread$H.handleMessage(ActivityThread.java:2187) 处执行(TransactionExecutor.java:97) 在 android.os.Looper.loop(Looper .java:236) 在 android.app.ActivityThread.main(ActivityThread.java:8057) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit .java:620) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011) 2022-02-05 16:09:20.307 5031-5031/com.ocr.test.ocr4 I/Process: 发送信号。PID:5031 SIG:9 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011) 的 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620) 调用(本机方法) 2022-02-05 16:09:20.307 5031-5031/com.ocr.test.ocr4 I/Process:发送信号。PID:5031 SIG:9 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011) 的 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620) 调用(本机方法) 2022-02-05 16:09:20.307 5031-5031/com.ocr.test.ocr4 I/Process:发送信号。PID:5031 SIG:9