O que é libhairCAPTURE?

Transcrição

O que é libhairCAPTURE?
libhairCAPTURE
ALESSANDRO DE OLIVEIRA FARIA
http://lhaircapture.sourceforge.net
AGRADECIMENTOS:
Augusto Campos – BR­Linux
Lucas De Mattos Martinez – LinuxDicas
Fábio Berbert de Paula ­ Viva O Linux
Rubens Queiroz – Dicas­L
Marcio Elias – Linha de Código
Gisele Andrea Basilio Faria ­ Esposa
ALESSANDRO DE OLIVEIRA FARIA (CABELO)
Sócio-proprietário – NETi TECNOLOGIA
Consultor em reconhecimento facial
Analista de Negócios
Levando o Linux a sério desde 1998
Projetos biométricos (Face e Impressão Digital)
Colunista técnico em
●
●
●
Linha de Código - http://www.linhadecodico.com.br
Viva O Linux - http://www.vivaolinux.com.br
Tecnociencia - http://tecnociencia.com.br
Projetos Open-source:
●
HairCAPTURE - http://lhaircapture.sourceforge.net
●
IPCMSG - http://ipcmsg.codigolivre.orb.br
●
EMUKEYPRESS - http://emukeypress.codigolivre.org.br
●
OPENLOGITECH - http://openlogitech.codigolivre.org.br
●
LCD - http://lcd.codigolivre.org.br
Apresentação
●OOOOO
Propriedades
OOOO
Métodos
OOOOOOO
Exemplo
OOO
O que é libhairCAPTURE?
A hairCapture é uma Biblioteca de objetos escrita em C++, criada
para facilitar o desenvolvimento de aplicações que manipulam
vídeo ao vivo. Os métodos trabalham com chamadas da API's V4L
(Video for Linux, ou vídeo para Linux) versão 1.
Os recursos da biblioteca SDL foram utilizados para
proporcionar recursos visuais junto à exibição do vídeo ao vivo.
O desenvolvimento da hairCAPTURE começou em dezembro de 2004. A
biblioteca surgiu quando Alessandro de Oliveira Faria, conhecido
como Cabelo, portou para o Linux um sistema de reconhecimento
facial, inicialmente criado para rodar em Windows.
Ao perceber a ausência de material nessa área para Linux, Cabelo
decidiu disponibilizar suas bibliotecas para a comunidade,
criando então a hairCAPTURE.
Apresentação
●●OOOO
Propriedades
OOOO
Métodos
OOOOOOO
Exemplo
OOO
Projeto que deu origem a biblioteca
hairCAPTURE
Apresentação
●●●OOO
Propriedades
OOOO
Métodos
OOOOOOO
Exemplo
OOO
O que é V4L ( Video for Linux )?
V4L é API para interface com dispositivos de vídeo captura.
O primeiro device de captura com suporte a Linux(~1997), foram as placas baseadas no
chipset bt848/878 Conexant. (Osprey,Pinnacle, PixelView ...)
Surgiu por volta de 1998 (Alan Cox), incorporada ao Kernel 2.1.x. Assim substituindo
várias interfaces desenvolvidas.
Placa de captura
Driver do dispositivo
API V4L
Aplicação
Apresentação
●●●●OO
Propriedades
OOOO
Métodos
OOOOOOO
Exemplo
OOO
Por que o nome hairCapture?
Por que utilizar a biblioteca hairCAPTURE?
- Fácil utilização;
- Produtividade;
- Fácil adaptação e/ou modificação.
Apresentação
●●●●●O
Propriedades
OOOO
Métodos
OOOOOOO
Exemploo
OOO
Demonstração
Instalação
Funcionalidade
Documentação
Apresentação
●●●●●●
Propriedades
OOOO
Métodos
OOOOOOO
Exemplo
OOO
Propriedades:
xText = 0;
yText = 110;
size = 12;
width = 320;
height = 240;
depth = 24;
size = 12;
colorFont = {0,255,0};
fontName
Apresentação
●●●●●●
= "VeraMono.ttf";
Propriedades
●OOO
Métodos
OOOOOOO
Exemplo
OOO
Propriedades:
debug
= true;
AudioEnabled = false;
device = "/dev/video";
SRCcolorTransparent = {255,0,255};
Apresentação
●●●●●●
Propriedades
●●OO
Métodos
OOOOOOO
Exemplo
OOO
Propriedades:
KeyZoomOutOn
= SDLK_SPACE;
KeyZoomOutOff
= SDLK_c;
KeyFullScreeen = SDLK_f;
Apresentação
●●●●●●
KeySaveFrame
= SDLK_s;
KeyQuit
= SDLK_q;
Propriedades
●●●O
Métodos
OOOOOOO
Exemplo
OOO
Propriedades:
SDL_Surface *text_surface;
SDL_Surface *draw_surface;
SDL_Surface *photo_surface;
SDL_Surface *screen;
SDL_Surface *offscreen;
Apresentação
●●●●●●
Propriedades
●●●●
Métodos
OOOOOOO
Exemplo
OOO
Métodos:
video1.ColorBit(24);
Define o valor da profundidade de cor da
janela ou tela de exibição do vídeo.
video1.Resolution(320,240);
Define o valor da resolução da janela ou
tela de exibição do vídeo.
Apresentação
●●●●●●
Propriedades
●●●●
Métodos
●OOOOOO
Exemplo
OOO
Métodos:
video1.SetDevice("/dev/video0");
Define o dispositivo de vídeo a ser utilizado.
video1.AudioEnabled = true;
Habilita ou desabilita o áudio do
dispositivo.
Apresentação
●●●●●●
Propriedades
●●●●
Métodos
●●OOOOO
Exemplo
OOO
Métodos:
video1.SetFont("VeraMono.ttf");
Especifica a fonte TrueType a ser utilizada no
texto inserido pelo método WriteText.
video1.SetTransparent(255,0,255);
Especifica a transparência na camada de imagem.
Apresentação
●●●●●●
Propriedades
●●●●
Métodos
●●●OOOO
Exemplo
OOO
Métodos:
video1.Open();
Inicializa o dispositivo de vídeo captura.
video1.InicializeWin();
Inicializa a janela ou tela de exibição do
vídeo ao vivo.
Apresentação
●●●●●●
Propriedades
●●●●
Métodos
●●●●OOO
Exemplo
OOO
Métodos:
video1.LoadBMP("tux.bmp");
Carrega sobre o vídeo a imagem especificada no padrão bitmap.
video1.Line(20,215,320,215,0,255,0);
Traça uma linha sobre o vídeo ao vivo nas coordenadas
e cores especificadas.
Apresentação
●●●●●●
Propriedades
●●●●
Métodos
●●●●●OO
Exemplo
OOO
Métodos:
video1.WriteText(20,220,"USE LINUX!!!");
Escreve um texto sobre o vídeo ao vivo.
video1.Show();
Instância uma thread para exibir o vídeo ao vivo.
Apresentação
●●●●●●
Propriedades
●●●●
Métodos
●●●●●●O
Exemplo
OOO
Métodos:
video1.SavePPM("the-end.ppm");
Salva em disco o quadro atual no formato PPM
(Portable Pixel Map) com o nome especificado.
video1.WaitForVideo();
Aguarda a thread de exibição do vídeo ao vivo
ser finalizada.
Apresentação
●●●●●●
Propriedades
●●●●
Métodos
●●●●●●●
Exemplo
OOO
chega de conversa!
Exemplo prático:
Apresentação
●●●●●●
Propriedades
●●●●
Métodos
●●●●●●●
Conclusão
●OOO
http://libhaircapture.codigolivre.org.br/
http://lhaircapture.sourceforge.net/
Apresentação
●●●●●●
Propriedades
●●●●
Métodos
●●●●●●●
Conclusão
●●O
Apresentação
●●●●●●
Propriedades
●●●●
Métodos
●●●●●●●
Conclusão
●●●