在android mobile vision api中,OcrDetectorProcessor类中有一种称为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);
}
}
}
}