Lua API: Funções#

set_debug#

set_debug(boolean debug_on)

Parâmetros:

debug_on – Passe um valor que resulte em true (depuração ligada) ou false (depuração desligada)

Valores de Retorno:

nenhum

Liga ou desliga a depuração. Quando a depuração está ligada, a câmara tentará enviar informação de depuração de texto e imagem através da porta série. Desligue a depuração assim que um programa estiver concluído para melhorar o desempenho.

print#

Utilização: print("a message") / print("one plus one is ", 1+1)

Parâmetros:

Passe tantos valores quantos desejar.

Valores de Retorno:

nenhum

Função de depuração, utilizada para imprimir valores. A CMUcam3 enviará todos os valores passados a esta função para o plugin do Eclipse CamScripter, onde serão apresentados na área de Consola.

turn_on_led#

turn_on_led(integer led_number)

Parâmetros:

led_number O número do LED da CMUcam3 a acender. 0, 1, 2 são os únicos valores válidos.

Valores de Retorno:

nenhum

Liga um dos LEDs da CMUcam3.

turn_off_led#

turn_off_led(integer led_number)

Parâmetros:

led_number O número do LED da CMUcam3 a acender. 0, 1, 2 são os únicos valores válidos.

Valores de Retorno:

nenhum

Desliga um dos LEDs da CMUcam3.

take_picture#

take_picture()

Parâmetros:

nenhum

Valores de Retorno:

nenhum

Tira uma imagem com a CMUcam3 e carrega o buffer de imagem (pixbuf).

save_picture#

save_picture(string filename)

Parâmetros:

filename Nome de ficheiro com o qual tentar guardar a imagem.

Valores de Retorno:

nenhum

Guarda a imagem atualmente no buffer de imagem no nome de ficheiro passado. O nome de ficheiro tem de ser um nome de ficheiro FAT16 válido <8.3>, ou será devolvido um erro. Se já existir um ficheiro com o nome dado, este será substituído. Note que esta função não tira uma imagem por si só - tem de chamar take_picture antes de chamar save_picture.

file_exists#

file_exists(string filename)

Parâmetros:

filename

Valores de Retorno:

booleano que indica se o ficheiro existe

Testa para ver se existe um ficheiro no cartão MMC/SD com o nome de ficheiro passado.

camera_set_resolution#

camera_set_resolution(integer resolution)

Parâmetros:

resolution A nova resolução para a câmara

Valores de Retorno:

nenhum

Define a resolução da CMUcam3. A resolução tem de ser high ou low (consulte as Constantes de Resolução da Câmara em Lua API: Constantes).

camera_set_colorspace#

camera_set_colorspace(integer space)

Parâmetros:

space A nova resolução para a câmara, deve ser CC3_COLORSPACE_YCRCB OU CC3_COLORSPACE_RGB

Valores de Retorno:

nenhum

Define o espaço de cor da CMUcam3 para YCRCB ou RGB (RGB é a predefinição). Consulte também Lua API: Constantes.

wait#

wait(integer ms)

Parâmetros:

ms O número de milissegundos a esperar

Valores de Retorno:

nenhum

Aguarda ms milissegundos.

pixbuf_set_coi#

pixbuf_set_coi(integer coi)

Valores de Retorno:

nenhum

Define os canais de interesse para a câmara. Determina quais os canais que a câmara regista ao tirar imagens. Definir valores menores para o COI pode acelerar o processamento de imagem. Os valores válidos para o COI podem ser encontrados nas Constantes de Canal de Interesse em Lua API: Constantes.

pixbuf_read_rows#

pixbuf_read_rows(image img, integer num_rows)

Parâmetros:

img Um objeto de imagem para o qual são lidas as linhas do pixbuf, num_rows O número de linhas a ler

Valores de Retorno:

O número de linhas que foram lidas com sucesso

Copia num_rows linhas do buffer de imagem da câmara (pixbuf) para o objeto image passado.

pixbuf_get_width#

pixbuf_get_width()

Parâmetros:

nenhum

Valores de Retorno:

A largura do pixbuf em pixels

Obtém a largura do buffer de imagem (pixbuf). O buffer de imagem tem de ter sido carregado antes de chamar isto, chamando take_picture ou show_picture.

pixbuf_get_height#

pixbuf_get_height()

Parâmetros:

nenhum

Valores de Retorno:

A altura do pixbuf em pixels

Obtém a altura do buffer de imagem (pixbuf). O buffer de imagem tem de ter sido carregado antes de chamar isto, chamando take_picture ou show_picture.

pixel_new#

pixel_new()

Parâmetros:

nenhum

Valores de Retorno:

Uma nova estrutura de dados pixel

Cria e devolve uma nova estrutura de dados pixel. Consulte a documentação de pixel para detalhes sobre a estrutura. Consulte também pixbuf_get_pixel e get_pixel para utilização da estrutura pixel.

get_pixel#

get_pixel(pixel pxl, integer x, integer y)

Parâmetros:

pxl A estrutura de dados pixel na qual armazenar os valores do pixel. x, y As coordenadas x e y do pixel a obter dentro do buffer de imagem.

Valores de Retorno:

nenhum, os valores do pixel são armazenados no pixel passado como argumento

Obtém um único pixel de dentro do buffer de imagem da CMUcam3 (pixbuf). x e y têm de ser inferiores a pixbuf_get_width e pixbuf_get_height, respetivamente. Se take_picture não tiver sido chamado para armazenar uma imagem no pixbuf, esta função não falhará, mas os valores inseridos no pixel serão lixo.

image_new#

image_new(integer width, integer height)

Parâmetros:

width A largura da imagem, height A altura da imagem

Valores de Retorno:

Uma nova estrutura de dados image.

Obtém uma nova estrutura de dados image, com a largura, altura e pixsize passadas. Consulte a documentação de image para mais informações sobre a utilização de estruturas de dados image.

Obtém um pixel da estrutura de dados image passada. Os valores RGB do pixel serão armazenados na estrutura de dados pixel passada. O parâmetro x tem de ser inferior à largura da image, e y tem de ser inferior à altura da image.

framediff_new#

framediff_new(integer template_width, integer template_height)

Parâmetros:

template_width A largura do template que estamos a comparar, template_height A altura do template

Valores de Retorno:

Uma nova estrutura de dados framediff

Obtém uma nova estrutura de dados framediff, com a largura e altura do template passadas. As estruturas framediff são geralmente utilizadas para avaliar a diferença entre dois frames de imagem tirados com a CMUcam3, mas consulte a documentação de framediff para mais informações.

framediff_scanline_start#

framediff_scanline_start(framediff fd)

Parâmetros:

fd O objeto framediff a usar

Valores de Retorno:

Devolve 1 se bem-sucedido.

Inicializa tudo o que é necessário para fazer frame differencing utilizando framediff_scanline. Garante que existe um current_template definido na estrutura framediff (ou carrega o template atual se framediff:get_load_frame() for verdadeiro).

framediff_scanline#

framediff_scanline(image img, framediff fd)

Parâmetros:

img Uma estrutura de dados image, fd Uma estrutura de dados framediff

Valores de Retorno:

Devolve 1 se bem-sucedido

Obtém todos os pixels de img e carrega-os no slot apropriado da estrutura framediff, para que os dois templates (current_template e previous_template) possam ser comparados. Se fd:get_load_frame for verdadeiro, carregará os pixels de img no slot do template anterior. Se fd:get_load_frame for falso, carrega os pixels de img no current_template.

framediff_scanline_finish#

framediff_scanline_finish(framediff fd)

Parâmetros:

fd A estrutura de dados framediff a usar

Valores de Retorno:

Devolve 1 se a operação foi bem-sucedida.

Compara os dois templates (current_template e previous_template) na estrutura de dados framediff e calcula o número de pixels que são diferentes, armazenando esse valor em framediff:get_num_pixels.

clear_graphics#

clear_graphics()

Parâmetros:

nenhum

Valores de retorno:

nenhum

Limpar o ecrã de gráficos do CamScripter.

tracker_track_color#

tracker_track_color(tracker theTracker)

Parâmetros:

o objeto tracker usado para fazer o seguimento de cor, configurado com o valor RGB desejado a definir.

Valores de retorno:

booleano que indica se o seguimento foi possível. Retorna true mesmo que a cor não tenha sido encontrada – só retorna false se ocorreu um erro.

Segue uma cor na CMUcam3 utilizando o objeto tracker passado. take_picture() tem de ser chamado antes de tentar seguir uma cor. Analisa o buffer de imagem e define valores no objeto tracker para dar uma caixa delimitadora para a cor e um valor (x, y) que representa o centroide da cor. Consulte a documentação do tracker para mais detalhes.