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 列讀入的 image 物件,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。
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 中的像素載入 previous template 插槽。如果 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) 繪製一條線。線條的 RGB 色彩可透過選用的 red、green 與 blue 引數指定。若未指定色彩,預設色彩為黑色。
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)。橢圓的 RGB 色彩可透過選用的 red、green 與 blue 引數指定。若未指定色彩,預設色彩為黑色。
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 說明文件。