Lua API:函数#
set_debug#
set_debug(boolean debug_on)
- 参数:
debug_on—— 传递一个求值为 true(调试打开)或 false(调试关闭)的值- 返回值:
无
打开或关闭调试。调试打开时,相机将尝试通过串行端口发送文本和图像调试信息。程序完成后请关闭调试以提高性能。
print#
用法:print("a message") / print("one plus one is ", 1+1)
- 参数:
传递任意数量的值。
- 返回值:
无
调试函数,用于打印值。CMUcam3 会将传递给此函数的所有值发送到 CamScripter Eclipse 插件,在那里它们将显示在控制台区域中。
turn_on_led#
turn_on_led(integer led_number)
- 参数:
led_number要打开的 CMUcam3 LED 的编号。只有 0、1、2 是合法值。- 返回值:
无
打开 CMUcam3 的一个 LED。
turn_off_led#
turn_off_led(integer led_number)
- 参数:
led_number要打开的 CMUcam3 LED 的编号。只有 0、1、2 是合法值。- 返回值:
无
关闭 CMUcam3 的一个 LED。
take_picture#
take_picture()
- 参数:
无
- 返回值:
无
用 CMUcam3 拍照,并加载图片缓冲区 (pixbuf)。
print_picture#
print_picture()
- 参数:
无
- 返回值:
无
通过串行端口发送刚拍摄的图片,以在 CamScripter 调试窗口中显示。您必须在调用此函数之前调用 take_picture——它本身不拍照。
save_picture#
save_picture(string filename)
- 参数:
filename尝试用来保存图片的文件名。- 返回值:
无
将当前图片缓冲区中的图片保存到传入的文件名。文件名必须是有效的 FAT16 文件名 <8.3>,否则将返回错误。如果已存在具有给定文件名的文件,它将被覆盖。请注意,此函数本身不拍照——您必须在调用 save_picture 之前调用 take_picture。
file_exists#
file_exists(string filename)
- 参数:
filename- 返回值:
指示文件是否存在的布尔值
测试 MMC/SD 卡上是否存在具有传入文件名的文件。
camera_set_resolution#
camera_set_resolution(integer resolution)
- 参数:
resolution相机的新分辨率- 返回值:
无
设置 CMUcam3 的分辨率。分辨率必须是 high 或 low(参见 Lua API:常量 中的相机分辨率常量)。
camera_set_colorspace#
camera_set_colorspace(integer space)
- 参数:
space相机的新分辨率,必须是CC3_COLORSPACE_YCRCB或CC3_COLORSPACE_RGB- 返回值:
无
将 CMUcam3 的颜色空间设置为 YCRCB 或 RGB(RGB 是默认值)。另请参阅 Lua API:常量。
wait#
wait(integer ms)
- 参数:
ms要等待的毫秒数- 返回值:
无
等待 ms 毫秒。
pixbuf_set_coi#
pixbuf_set_coi(integer coi)
- 返回值:
无
设置相机的关注通道。决定相机拍照时记录哪些通道。为 COI 设置较小的值可以加快图像处理速度。COI 的合法值可以在 Lua API:常量 中的关注通道常量中找到。
pixbuf_read_rows#
pixbuf_read_rows(image img, integer num_rows)
- 参数:
img一个读取 pixbuf 行的图像对象,num_rows要读取的行数- 返回值:
成功读取的行数
将 num_rows 行从相机的图片缓冲区 (pixbuf) 复制到传入的 image 对象中。
pixbuf_get_width#
pixbuf_get_width()
- 参数:
无
- 返回值:
pixbuf 的宽度(以像素为单位)
获取图片缓冲区 (pixbuf) 的宽度。在调用此函数之前,必须已通过调用 take_picture 或 show_picture 加载了图片缓冲区。
pixbuf_get_height#
pixbuf_get_height()
- 参数:
无
- 返回值:
pixbuf 的高度(以像素为单位)
获取图片缓冲区 (pixbuf) 的高度。在调用此函数之前,必须已通过调用 take_picture 或 show_picture 加载了图片缓冲区。
pixel_new#
pixel_new()
- 参数:
无
- 返回值:
一个新的 pixel 数据结构
创建并返回一个新的 pixel 数据结构。有关该结构的详细信息,请参阅 pixel 文档。另请参阅 pixbuf_get_pixel和 get_pixel以了解 pixel 结构的用法。
get_pixel#
get_pixel(pixel pxl, integer x, integer y)
从 CMUcam3 图片缓冲区 (pixbuf) 中获取单个 pixel。x 和 y 必须分别小于 pixbuf_get_width和 pixbuf_get_height。如果尚未调用 take_picture将图片存储到 pixbuf 中,此函数不会失败,但插入到 pixel 中的值将是垃圾值。
image_new#
image_new(integer width, integer height)
- 参数:
width图像的宽度,height图像的高度- 返回值:
一个新的 image 数据结构。
获取一个新的 image 数据结构,使用传入的宽度、高度和 pixsize。有关使用 image 数据结构的更多信息,请参阅 image 文档。
从传入的 image 数据结构中获取一个 pixel。该像素的 RGB 值将存储到传入的 pixel 数据结构中。参数 x 必须小于该 image的宽度,y 必须小于该 image的高度。
framediff_new#
framediff_new(integer template_width, integer template_height)
- 参数:
template_width我们正在差分的模板的宽度,template_height模板的高度- 返回值:
一个新的 framediff 数据结构
获取一个新的 framediff 数据结构,使用传入的模板宽度和高度。framediff 结构通常用于评估用 CMUcam3 拍摄的两个图片帧之间的差异,但有关更多信息,请参阅 framediff 文档。
framediff_scanline_start#
framediff_scanline_start(framediff fd)
- 参数:
fd要使用的 framediff 对象- 返回值:
如果成功则返回 1。
初始化使用 framediff_scanline进行帧差分所需的一切。确保在 framediff 结构中设置了 current_template(如果 framediff:get_load_frame()为 true,则加载当前模板)。
framediff_scanline#
framediff_scanline(image img, framediff fd)
从 img 获取所有像素,并将它们加载到 framediff 结构中适当的槽位,以便可以比较两个模板(current_template 和 previous_template)。如果 fd:get_load_frame 为 true,将把 img 中的像素加载到先前模板槽位。如果 fd:get_load_frame 为 false,则将 img 中的像素加载到 current_template。
framediff_scanline_finish#
framediff_scanline_finish(framediff fd)
- 参数:
fd要使用的 framediff 数据结构- 返回值:
如果操作成功则返回 1。
比较 framediff 数据结构中的两个模板(current_template 和 previous_template),并计算不同像素的数量,将该值存储在 framediff:get_num_pixels 中。
print_color_tracker#
print_color_tracker(tracker tracker)
- 参数:
trackertracker 提供用于打印的数据- 返回值:
无
使用 tracker 对象中的数据在 CamScripter 上打印调试信息。打印一个表示相机图片缓冲区中图片的矩形,其中还有另一个矩形表示被跟踪颜色的边界框,以及一个显示图片中颜色质心的红点。
print_rectangle#
print_rectangle(integer x, integer y, integer width, integer height [, integer red, integer green, integer blue])
- 参数:
x、y是矩形左上角的坐标位置,即距离图形屏幕左上角的距离。width和height是矩形的宽度和高度。可选的red、green和blue参数以 RGB 值的形式给出矩形将被绘制的颜色。默认颜色为黑色。- 返回值:
无
在 CamScripter 图形选项卡中绘制一个宽 width 像素、高 height 像素的矩形。可选的 red、green 和 blue 参数允许使用 0 到 255 之间的 RGB 值来更改矩形的颜色。
print_line#
print_line(integer start_x, integer start_y, integer end_x, integer end_y [, integer red, integer green, integer blue])
- 参数:
线的起点和终点,以及用于设置线条颜色的可选参数。
- 返回值:
无
在 CamScripter 图形屏幕上从 (start_x, start_y) 到 (end_x, end_y) 绘制一条线。可以使用可选的 red、green 和 blue 参数指定线条的 RGB 颜色。如果未指定颜色,则默认颜色为黑色。
print_oval#
print_oval(integer x, integer y, integer width, integer height [, integer red, intger green, integer blue])
- 参数:
椭圆的左上角由 (x, y) 指定。宽度和高度以像素为单位。Red、green 和 blue 是用于设置椭圆颜色的可选参数。
- 返回值:
无
在 CamScripter 图形屏幕上绘制一个椭圆。椭圆的左上角位于点 (x, y)。可以使用可选的 red、green 和 blue 参数指定椭圆的 RGB 颜色。如果未指定颜色,则默认颜色为黑色。
clear_graphics#
clear_graphics()
- 参数:
无
- 返回值:
无
清除 CamScripter 图形屏幕。
tracker_track_color#
tracker_track_color(tracker theTracker)
- 参数:
用于进行颜色跟踪的 tracker 对象,设置为所需的 RGB 值。
- 返回值:
指示跟踪是否能够发生的布尔值。即使未找到颜色也返回 true——仅当发生错误时才返回 false。
使用传入的 tracker 对象在 CMUcam3 中跟踪颜色。在尝试跟踪颜色之前必须调用 take_picture()。分析图片缓冲区,并在 tracker 对象中设置值,以给出颜色的边界框和表示颜色质心的 (x, y) 值。有关更多详细信息,请参阅 tracker 文档。