开始之前:

1. 识别文字输出相关数据

在光学字符识别功能下,HUSKYLENS 2 可识别并框出视野内文字块出现的区域,并将识别到的文字显示在屏幕上,可使用以下示例程序,统计画面中可识别文字块的总数、获取画面中离十字光标最近的文字块相关数据,可以读取的数据有:文字块的ID 、名称、内容、中心点X坐标和Y坐标、文字块宽度和高度。

示例程序如下。

#include "unihiker_k10.h"
#include "DFRobot_HuskylensV2.h"
// 创建对象
HuskylensV2  huskylens;
UNIHIKER_K10 k10;
uint8_t      screen_dir=2;


// 主程序开始
void setup() {
	k10.begin();
	Wire.begin();
  while (!huskylens.begin(Wire)) {
    delay(100);
  }
	k10.initScreen(screen_dir);
	k10.creatCanvas();
	huskylens.switchAlgorithm(ALGORITHM_OCR_RECOGNITION);
}
void loop() {
	huskylens.getResult(ALGORITHM_OCR_RECOGNITION);
	if ((huskylens.available(ALGORITHM_OCR_RECOGNITION))) {
		k10.canvas->canvasText((String("文字块数量:") + String((huskylens.getCachedResultNum(ALGORITHM_OCR_RECOGNITION)))), 1, 0x0000FF);
		k10.canvas->canvasText((String("靠近中心的文字ID:") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION), Result, ID)))), 3, 0x0000FF);
		k10.canvas->canvasText("靠近中心的文字内容:", 5, 0x0000FF);
		k10.canvas->canvasText((RET_ITEM_STR(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION), Result, content)), 6, 0x0000FF);
		k10.canvas->canvasText("靠近中心的文字块", 8, 0x0000FF);
		k10.canvas->canvasText((String("的中心坐标:") + String((String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION), Result, width))) + String((String(",") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION), Result, height)))))))), 9, 0x0000FF);
		k10.canvas->canvasText("靠中心的文字块", 11, 0x0000FF);
		k10.canvas->canvasText((String("的宽高:") + String((String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION), Result, xCenter))) + String((String(",") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION), Result, yCenter)))))))), 12, 0x0000FF);
	}
	k10.canvas->updateCanvas();
	delay(50);
}

上传程序,等待程序上传成功后。

将HUSKYLENS 2的摄像头对准任意光学字符,观察K10屏幕显示的结果。

**运行结果:**如下,对于未学习过的文字块默认输出ID为0。

Interface Diagram

可以对准一张学习过的文字块,如何学习光学字符详细操作请看 :光学字符识别-学习文字

**运行结果:**如下,对于已学习过的文字块输出ID与HUSKYLENS 2屏幕显示的ID保持一致。

注:在光学字符识别功能下,HUSKYLENS 2能检测出画面中所有文字块出现的区域并用方框圈出,但是只识别十字光标所在的一个文字块区域的内容并讲文字内容显示在方框左上角。

Interface Diagram