使用 Android Mobile Vision API 在文本中搜索特定模式
Search for specific pattern in text using Android Mobile Vision API
我已经实现了一个使用 android 移动视觉 API 阅读文本的应用程序。但是有没有一种方法可以让我搜索特定的文本模式,例如搜索连续 10 位数字的位置或类似的东西。是否可以实现这个。
我们将不胜感激。
在 android 移动视觉 api 中,OcrDetectorProcessor class.
中有一个名为 receiveDetections 的方法
此方法接收通过相机检测到的所有字符,它的默认行为是显示每个
检测到屏幕上的字符。
@Override
public void receiveDetections(Detector.Detections<TextBlock> detections) {
mGraphicOverlay.clear();
SparseArray<TextBlock> items = detections.getDetectedItems();
for (int i = 0; i < items.size(); ++i) {
TextBlock item = items.valueAt(i);
OcrGraphic graphic = new OcrGraphic(mGraphicOverlay, item);
mGraphicOverlay.add(graphic);
}
}
您可以编辑此方法来过滤检测到的字符,只显示您想要显示给用户的内容。所以如果说,根据你的问题,你想显示任何包含 10 个字符的字符串,你可以通过将方法编辑为以下内容来实现,
@Override
public void receiveDetections(Detector.Detections<TextBlock> detections) {
if(stopScan){
SparseArray<TextBlock> items = detections.getDetectedItems();
for (int i = 0; i < items.size(); ++i) {
TextBlock item = items.valueAt(i);
//verify string here
if (item.getValue().length() == 10) {
OcrGraphic graphic = new OcrGraphic(mGraphicOverlay, item);
mGraphicOverlay.add(graphic);
}
}
}
}
我已经实现了一个使用 android 移动视觉 API 阅读文本的应用程序。但是有没有一种方法可以让我搜索特定的文本模式,例如搜索连续 10 位数字的位置或类似的东西。是否可以实现这个。
我们将不胜感激。
在 android 移动视觉 api 中,OcrDetectorProcessor class.
中有一个名为 receiveDetections 的方法此方法接收通过相机检测到的所有字符,它的默认行为是显示每个 检测到屏幕上的字符。
@Override
public void receiveDetections(Detector.Detections<TextBlock> detections) {
mGraphicOverlay.clear();
SparseArray<TextBlock> items = detections.getDetectedItems();
for (int i = 0; i < items.size(); ++i) {
TextBlock item = items.valueAt(i);
OcrGraphic graphic = new OcrGraphic(mGraphicOverlay, item);
mGraphicOverlay.add(graphic);
}
}
您可以编辑此方法来过滤检测到的字符,只显示您想要显示给用户的内容。所以如果说,根据你的问题,你想显示任何包含 10 个字符的字符串,你可以通过将方法编辑为以下内容来实现,
@Override
public void receiveDetections(Detector.Detections<TextBlock> detections) {
if(stopScan){
SparseArray<TextBlock> items = detections.getDetectedItems();
for (int i = 0; i < items.size(); ++i) {
TextBlock item = items.valueAt(i);
//verify string here
if (item.getValue().length() == 10) {
OcrGraphic graphic = new OcrGraphic(mGraphicOverlay, item);
mGraphicOverlay.add(graphic);
}
}
}
}