开始之前:

1. 识别文字输出中心附近文字的相关数据

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

示例程序如下。

#include "DFRobot_HuskylensV2.h"
// 创建对象
HuskylensV2 huskylens;


// 主程序开始
void setup() {
	Serial.begin(9600);
	Wire.begin();
  while (!huskylens.begin(Wire)) {
    delay(100);
  }
	huskylens.switchAlgorithm(ALGORITHM_OCR_RECOGNITION);
}
void loop() {
	huskylens.getResult(ALGORITHM_OCR_RECOGNITION);
	if ((huskylens.available(ALGORITHM_OCR_RECOGNITION))) {
		Serial.println((String("画面中的文字块总数为:") + String((huskylens.getCachedResultNum(ALGORITHM_OCR_RECOGNITION)))));
		Serial.println((String("靠近中心的文字内容为:") + String((RET_ITEM_STR(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION), Result, content)))));
		Serial.println((String("检测到的第1个文字块的ID为") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION), Result, ID)))));
		Serial.println((String("检测到的第1个文字块的宽度为") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION), Result, width)))));
		Serial.println((String("检测到的第1个文字块的高度为") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION), Result, width)))));
	}
	delay(500);
}

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

Interface Diagram

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