Java 使用ML工具包和Android Studio在文本识别中返回文本
我正在与Android Studio合作开发一个应用程序,一旦拍摄了一张照片,它将返回图像中检测到的文本。我的问题是,每次我拍照时,它在图像中都找不到任何文本(无论文本多么明显)。我遵循了谷歌网站上的ML工具包文档,没有发现我的代码有任何错误。每次拍照时,我的任务都不成功,结果中会打印“文本检测失败”。我做错了什么或者我错过了什么,有什么帮助吗Java 使用ML工具包和Android Studio在文本识别中返回文本,java,android,android-studio,firebase-mlkit,google-mlkit,Java,Android,Android Studio,Firebase Mlkit,Google Mlkit,我正在与Android Studio合作开发一个应用程序,一旦拍摄了一张照片,它将返回图像中检测到的文本。我的问题是,每次我拍照时,它在图像中都找不到任何文本(无论文本多么明显)。我遵循了谷歌网站上的ML工具包文档,没有发现我的代码有任何错误。每次拍照时,我的任务都不成功,结果中会打印“文本检测失败”。我做错了什么或者我错过了什么,有什么帮助吗 @Override protected void onActivityResult(int requestCode, int resultCode, @
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// extract image
assert data != null;
Bundle image_bundle = data.getExtras();
Bitmap image_bitmap = (Bitmap) image_bundle.get("data");
// set image in image_view of application
image_view.setImageBitmap(image_bitmap);
// process the given image to get the text
// this is using Firebase ML and Cloud Vision API
// 1. create InputImage obj from Bitmap obj
InputImage input_image = InputImage.fromBitmap(image_bitmap, 0);
// 2. create TextRecognizer obj as entry point to analyzing image
TextRecognizer text_recognizer = TextRecognition.getClient();
// 3. perform text recognition on the image
Task<Text> task = text_recognizer.process(input_image);
// 4. handle the success of the task
task.addOnCompleteListener(new OnCompleteListener<Text>() {
@Override
public void onComplete(@NonNull Task<Text> task_) {
if (task_.isSuccessful()) {
text_view.setText("Text Detected");
}
else {
text_view.setText("Text Detection Failed");
}
}
});
text_recognizer.close();
}
@覆盖
受保护的void onActivityResult(int-requestCode、int-resultCode、@Nullable-Intent-data){
super.onActivityResult(请求代码、结果代码、数据);
//提取图像
断言数据!=null;
Bundle image_Bundle=data.getExtras();
位图图像\位图=(位图)图像\ bundle.get(“数据”);
//在应用程序的图像视图中设置图像
设置图像位图(图像位图);
//处理给定的图像以获取文本
//这是使用Firebase ML和Cloud Vision API
//1.从位图obj创建InputImage obj
InputImage input_image=InputImage.fromBitmap(image_bitmap,0);
//2.创建文本识别器obj作为分析图像的入口点
text识别器text_recognizer=TextRecognition.getClient();
//3.对图像执行文本识别
任务=文本识别器。处理(输入图像);
//4.处理任务的成功
task.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
已完成的公共无效(@NonNull任务){
if(任务成功(){
text_view.setText(“检测到的文本”);
}
否则{
text_view.setText(“文本检测失败”);
}
}
});
文本识别器。关闭();
}
}我们对Firebase ML Kit进行了一些更改,以更好地区分设备上的API和基于云的API。“ML工具包”(不带firebase品牌)包含所有设备上的API。firebase mlkit到mlkit的迁移指南 对于文本识别,由于该模型是从GMSCore下载的,因此在初次使用之前,您可能需要等待该模型首先下载 如果仍然遇到相同的问题,请随时使用logcat跟踪或错误报告