Lua API:tracker#

说明#

tracker 数据结构用于辅助 CMUcam3 中的颜色跟踪。它保存有关正在进行的跟踪的信息,以及可以设置以控制跟踪哪种颜色和颜色跟踪其他方面的参数。TODO:添加对边界框是什么以及质心是什么的良好描述

示例#

这是一个简短的示例,展示了如何使用 tracker 对象在 CMUcam3 图片帧中查找红色区域,然后将该框打印到 Eclipse 中的 CamScripter 调试区域。

trkr = tracker_new(195, 0, 0, 255, 45, 45); -- track red
trkr:set_noise_filter(3);  -- 2 is the default

take_picture();
tracker_track_color(trkr);
print_color_tracker(trkr);  -- print color tracker info to the screen
print("num pixels tracked: " .. trkr:get_num_pixels()); -- print number of red pixels found in the picture
-- print_picture(); -- uncomment this line to print the picture itself to the screen as well (slower)

创建#

参见 tracker_new

方法#

  • get_centroid_x

  • get_centroid_y

  • get_density

  • get_num_pixels

  • get_x0

  • get_x1

  • get_y0

  • get_y1

  • set_lower_bound

  • set_noise_filter

  • set_upper_bound

get_centroid_x#

trkr:get_centroid_x()

参数:

返回值:

质心的整数 x 坐标

获取被跟踪颜色质心的 x 坐标,其中 (0, 0) 是图片的左上角。

get_centroid_y#

trkr:get_centroid_y()

参数:

返回值:

质心的整数 y 坐标

获取被跟踪颜色质心的 y 坐标,其中 (0, 0) 是图片的左上角。

get_density#

trkr:get_density()

参数:

返回值:

被跟踪颜色的密度

获取图片缓冲区内被跟踪颜色的密度。密度是衡量被跟踪颜色在颜色跟踪器边界框内密集程度的指标——框内被跟踪颜色的像素越多,密度就越高。

get_num_pixels#

trkr:get_num_pixels()

参数:

返回值:

图片缓冲区中与颜色跟踪器颜色匹配的像素数量

获取在 CMUcam3 图片缓冲区中找到的被跟踪颜色(由传递给 tracker_new 的 RGB 值确定)的像素总数。

get_x0#

trkr:get_x0()

参数:

返回值:

颜色跟踪边界框左上角的 x 坐标整数值。

调用 tracker_track_color 时,它会建立一个边界框,描述图片中被跟踪颜色的边界。(x0, y0) 是图片缓冲区中该框左上角的位置,(x1, y1) 是该框右下角的位置,其中 (0, 0) 是图片缓冲区的左上角。get_x0 返回颜色边界框左上角的 x 坐标。

get_y0#

trkr:get_y0()

参数:

返回值:

颜色跟踪边界框左上角的 y 坐标整数值。

调用 tracker_track_color 时,它会建立一个边界框,描述图片中被跟踪颜色的边界。(x0, y0) 是图片缓冲区中该框左上角的位置,(x1, y1) 是该框右下角的位置,其中 (0, 0) 是图片缓冲区的左上角。get_y0 返回颜色边界框左上角的 x 坐标。

get_x1#

trkr:get_y1()

参数:

返回值:

颜色跟踪边界框右下角的 x 坐标整数值。

调用 tracker_track_color 时,它会建立一个边界框,描述图片中被跟踪颜色的边界。(x0, y0) 是图片缓冲区中该框左上角的位置,(x1, y1) 是该框右下角的位置,其中 (0, 0) 是图片缓冲区的左上角。get_x1 返回颜色边界框左上角的 x 坐标。

get_y1#

trkr:get_y1()

参数:

返回值:

颜色跟踪边界框右下角的 y 坐标整数值。

调用 tracker_track_color 时,它会建立一个边界框,描述图片中被跟踪颜色的边界。(x0, y0) 是图片缓冲区中该框左上角的位置,(x1, y1) 是该框右下角的位置,其中 (0, 0) 是图片缓冲区的左上角。get_y1 返回颜色边界框左上角的 x 坐标。

set_lower_bound#

trkr:set_lower_bound(integer channel, integer bound)

参数:

channel您要为其设置边界的通道。参见 Lua API:常量 中的关注通道常量。bound给定通道可能的最小值。必须介于 0 和 255 之间。

返回值:

为颜色跟踪器中的一个通道设置下限。下限是像素在该通道中为被跟踪所能具有的最小值。就颜色跟踪而言,任何像素要被视为可跟踪,该像素必须在其每个通道中都处于下限和上限之间。

set_noise_filter#

trkr:set_noise_filter(integer filter)

参数:

filter新的噪声过滤值。默认为 2。

返回值:

噪声过滤值决定在一个像素之前需要有多少个连续的活动像素,才能将该像素计为被颜色跟踪检测到。该值必须介于 0 和 255 之间。

set_upper_bound#

trkr:set_upper_bound(integer channel, integer bound)

参数:

channel您要为其设置边界的通道。参见 Lua API:常量 中的关注通道常量。bound给定通道可能的最大值。必须介于 0 和 255 之间。

返回值:

为颜色跟踪器中的一个通道设置上限。上限是像素在该通道中为被跟踪所能具有的最大值。就颜色跟踪而言,任何像素要被视为可跟踪,该像素必须在其每个通道中都处于下限和上限之间。