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_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()
- Параметры:
нет
- Возвращаемые значения:
Количество пикселей в буфере изображения, соответствующих цвету трекера цвета
Получает общее количество пикселей отслеживаемого цвета (определяемого 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.- Возвращаемые значения:
нет
Устанавливает верхнюю границу для одного канала в трекере цвета. Верхняя граница — это максимальное значение, которое пиксель может иметь в этом канале, чтобы быть отслеживаемым. Для целей отслеживания цвета, чтобы любой пиксель считался отслеживаемым, этот пиксель должен находиться между нижней и верхней границей в каждом из своих каналов.