开始之前:
1. 追踪物体输出相关数据
当HUSKYLENS 2检测到可追踪的目标物体时,可获取相关追踪数据。可以获取的数据有:物体的ID、名称、xy坐标、宽度、高度。
示例程序如下。
#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_OBJECT_TRACKING);
}
void loop() {
huskylens.getResult(ALGORITHM_OBJECT_TRACKING);
if ((huskylens.available(ALGORITHM_OBJECT_TRACKING))) {
k10.canvas->canvasText((String("物体ID:") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING), Result, ID)))), 1, 0x0000FF);
k10.canvas->canvasText((String("物体名称:") + String((RET_ITEM_STR(huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING), Result, name)))), 3, 0x0000FF);
k10.canvas->canvasText((String("物体xy坐标:") + String((String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING), Result, xCenter))) + String((String(",") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING), Result, yCenter)))))))), 5, 0x0000FF);
k10.canvas->canvasText((String("物体宽高:") + String((String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING), Result, width))) + String((String(",") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING), Result, height)))))))), 7, 0x0000FF);
}
k10.canvas->updateCanvas();
delay(50);
}
上传程序,等待程序上传完成后。
将HUSKYLENS 2摄像头对准要追踪的物体(追踪物体须先框选目标,详见 物体追踪使用说明
框选完成后,对准要追踪的目标物体,可观察输出结果。
**运行结果:**可输出追踪到的物体ID、名称、xy坐标、宽度、高度。物体名称默认为"物体"。