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_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 之間。

回傳值:

設定色彩追蹤器中某個通道的上界。上界是像素在該通道中為了能被追蹤所能擁有的最大值。就色彩追蹤而言,任何像素若要被視為可追蹤,該像素在其每個通道中都必須介於下界與上界之間。