根据OCR TextBlock的Google文档,它包含这些方法。
getBoundingBox()
getComponents()
getCornerPoints()
使用getLanguage()
的getValue()
有没有办法为TextBlock设置setValue()?
提前致谢。
答案 0 :(得分:0)
没有。 OCR旨在从图像内容中推断文本 - 它不是为了在图像空间中重新创建文本。
您可以随时覆盖自己的文本框,具体取决于您的使用情况。
答案 1 :(得分:0)
这取决于您到底需要什么。如果您想更改视觉API可以识别的显示文本,则可以。
在我使用Vision API中的OCR示例的情况下,您只需要在OcrGraphic类中创建另一个构造函数即可。
private TextBlock mText;
private String cText;
OcrGraphic(GraphicOverlay overlay, TextBlock text, String caption){
super(overlay);
mText = text;
cText = caption;
.
.
.
// Redraw the overlay, as this graphic has been added.
postInvalidate();
}
然后修改以前的构造函数
OcrGraphic(GraphicOverlay overlay, TextBlock text) {
super(overlay);
mText = text;
cText = text.getValue();
.
.
.
// Redraw the overlay, as this graphic has been added.
postInvalidate();
}
在draw方法中,您需要从变量中绘制文本
public void draw(Canvas canvas) {
TextBlock text = mText;
if (text == null) {
return;
}
.
.
.
// we replaced text.getValue() with cText that string are set by either constructors
canvas.drawText(cText, rect.left, rect.bottom, sTextPaint);
}
现在您可以通过两种方式调用,它将起作用,仅在检测器处理器中必要的时候使用,如下所示:(在 receiveDetections 方法的 OcrDetectorProcessor 类中)< / p>
OcrGraphic graphic = new OcrGraphic(mGraphicOverlay, item);
// Or use new one for your custom text
OcrGraphic graphic = new OcrGraphic(mGraphicOverlay, item, textValue);
mGraphicOverlay.add(graphic);
请让我确切地了解您的情况。公认的答案也是正确的,但这是视觉API之外的一个技巧。