Lua API: tracker#

Описание#

Структура данных tracker используется для помощи в отслеживании цвета в CMUcam3. Она хранит информацию о выполняемом отслеживании и параметры, которые можно установить для управления тем, какой цвет отслеживается, и другими аспектами отслеживания цвета. TODO: Добавить хорошее описание того, что такое ограничивающая рамка и что такое центроид

Пример#

Вот короткий пример, показывающий, как объект tracker используется для поиска красной области в кадре изображения CMUcam3, а затем эта рамка выводится в область отладки CamScripter в Eclipse.

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()

Параметры:

нет

Возвращаемые значения:

Количество пикселей в буфере изображения, соответствующих цвету трекера цвета

Получает общее количество пикселей отслеживаемого цвета (определяемого RGB-значениями, переданными в tracker_new), найденных в буфере изображения CMUcam3.

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.

Возвращаемые значения:

нет

Устанавливает верхнюю границу для одного канала в трекере цвета. Верхняя граница — это максимальное значение, которое пиксель может иметь в этом канале, чтобы быть отслеживаемым. Для целей отслеживания цвета, чтобы любой пиксель считался отслеживаемым, этот пиксель должен находиться между нижней и верхней границей в каждом из своих каналов.