开始之前:
1. 识别文字输出相关数据
在光学字符识别功能下,HUSKYLENS 2 可识别并框出视野内文字块出现的区域,并将识别到的文字显示在屏幕上,可使用以下示例程序,统计画面中可识别文字块的总数、获取画面中离十字光标最近的文字块相关数据,可以读取的数据有:文字块的ID 、名称、内容、中心点X坐标和Y坐标、文字块宽度和高度。
示例程序如下。
# -*- coding: UTF-8 -*-
# MindPlus
# Python
from unihiker import GUI
from pinpong.board import Board
from dfrobot_huskylensv2 import *
u_gui=GUI()
Board().begin()
huskylens = HuskylensV2_I2C()
huskylens.knock()
huskylens.switchAlgorithm(ALGORITHM_OCR_RECOGNITION)
line1=u_gui.draw_text(text="",x=0,y=0,font_size=18, color="#0000FF")
line2=u_gui.draw_text(text="",x=0,y=40,font_size=18, color="#0000FF")
line3=u_gui.draw_text(text="",x=0,y=80,font_size=18, color="#0000FF")
line4=u_gui.draw_text(text="",x=0,y=105,font_size=18, color="#0000FF")
line5=u_gui.draw_text(text="",x=0,y=165,font_size=18, color="#0000FF")
line6=u_gui.draw_text(text="",x=0,y=190,font_size=18, color="#0000FF")
line7=u_gui.draw_text(text="",x=0,y=230,font_size=18, color="#0000FF")
line8=u_gui.draw_text(text="",x=0,y=255,font_size=18, color="#0000FF")
while True:
huskylens.getResult(ALGORITHM_OCR_RECOGNITION)
if (huskylens.available(ALGORITHM_OCR_RECOGNITION)):
line1.config(text=(str("文字块数量:") + str((huskylens.getCachedResultNum(ALGORITHM_OCR_RECOGNITION)))))
line2.config(text=(str("靠近中心的文字ID:") + str(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION).ID if huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION) else -1)))
line3.config(text="靠近中心的文字内容:")
line4.config(text=huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION).content if huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION) else -1)
line5.config(text="靠近中心的文字块")
line6.config(text=(str("的坐标:") + str((str(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION).xCenter if huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION) else -1) + str((str(",") + str(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION).yCenter if huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION) else -1)))))))
line7.config(text="靠近中心的文字块")
line8.config(text=(str("的宽高:") + str((str(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION).width if huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION) else -1) + str((str(",") + str(huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION).height if huskylens.getCachedCenterResult(ALGORITHM_OCR_RECOGNITION) else -1)))))))
在Mind+中点击运行程序,等待程序上传完成。
将HUSKYLENS 2的摄像头对准任意光学字符,观察K10屏幕显示的结果。
**运行结果:**如下,对于未学习过的文字块默认输出ID为0。
可以对准一张学习过的文字块,如何学习光学字符详细操作请看:二哈识图 2 光学字符识别功能说明
**运行结果:**如下,对于已学习过的文字块输出ID与HUSKYLENS 2屏幕显示的ID保持一致。
注:在光学字符识别功能下,HUSKYLENS 2能检测出画面中所有文字块出现的区域并用方框框出,但是只识别十字光标所在的一个文字块区域的内容并将文字内容显示在方框左上角。