Lua API:tracker#
說明#
tracker 資料結構用於協助 CMUcam3 中的色彩追蹤。它保存了關於正在進行的追蹤的資訊,以及可設定以控制要追蹤何種色彩及色彩追蹤其他面向的參數。TODO: Add a good description of what hte bounding box is, and what the centroid is
範例#
以下是一個簡短的範例,展示如何使用 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_xget_centroid_yget_densityget_num_pixelsget_x0get_x1get_y0get_y1set_lower_boundset_noise_filterset_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 之間。- 回傳值:
無
設定色彩追蹤器中某個通道的上界。上界是像素在該通道中為了能被追蹤所能擁有的最大值。就色彩追蹤而言,任何像素若要被視為可追蹤,該像素在其每個通道中都必須介於下界與上界之間。