cria o de imagens e v deos 3d com opencv
Download
Skip this Video
Download Presentation
Criação de imagens e vídeos 3D com OpenCV

Loading in 2 Seconds...

play fullscreen
1 / 52

Criação de imagens e vídeos 3D com OpenCV - PowerPoint PPT Presentation


  • 102 Views
  • Uploaded on

Criação de imagens e vídeos 3D com OpenCV. Matheus Ricardo Uihara Zingarelli ([email protected]). Apresentação. Interesse da turma Conhecimento Técnico. Página de desambiguação. O que esperam aprender?. Página de desambiguação. O que esperam aprender?. Página de desambiguação.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Criação de imagens e vídeos 3D com OpenCV' - duante


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
apresenta o
Apresentação

Interesse da turma

Conhecimento Técnico

p gina de desambigua o
Página de desambiguação

O que esperam aprender?

p gina de desambigua o1
Página de desambiguação

O que esperam aprender?

p gina de desambigua o2
Página de desambiguação

O que esperam aprender?

p gina de desambigua o3
Página de desambiguação

?

O que esperam aprender?

p gina de desambigua o4
Página de desambiguação

O que esperam aprender?

p gina de desambigua o5
Página de desambiguação

O que esperam aprender?

agenda
Agenda

OpenCV 101

Imagens: funções básicas

Fundamentos 3D estereoscópico

Criação de imagem 3D anaglífico

Vídeos: funções básicas

Criação de vídeo 3D anaglífico

Material de referência

opencv
OpenCV

Material baseado no Livro de Bradski & Kaehler

opencv1
OpenCV

O que é?

Para que serve?

Quem utiliza?

Como programo?

opencv2
OpenCV

O que é?

“OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision.” (OpenCV Wiki)

Para que serve?

Quem utiliza?

Como programo?

opencv o que
OpenCV – O queé?

Milhares de algoritmos otimizados visando eficiência

Rapidez na criação de aplicações de visão computacional → reuso

Origem nos laboratórios da Intel

Open Sourcesob a licença BSD

opencv3
OpenCV
  • O que é?
  • Para que serve?
    • Muita coisa
      • Processamento de imagens, calibração de câmeras, monitoramento, rastreamento, reconhecimento facial/gestos, análise de imagens médicas, segmentação, Kinect, ...
  • Quem utiliza?
  • Como programo?
opencv4
OpenCV

Objeto de interesse para o minicurso

  • O que é?
  • Para que serve?
    • Muita coisa
      • Processamento de imagens, calibração de câmeras, monitoramento, rastreamento, reconhecimento facial/gestos, análise de imagens médicas, segmentação, Kinect, ...
  • Quem utiliza?
  • Como programo?
opencv para que serve
OpenCV – Para que serve?

Algumas funções do OpenCV (OpenCV - Wiki)

opencv5
OpenCV
  • O que é?
  • Para que serve?
  • Quem utiliza?
    • Muitas empresas
      • Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota, Applied Minds, VideoSurf, Zeitera,…
    • Governos
      • Green Dam da China

“The purported intent of the Green Dam software is to filter harmful online text and image content in order to prevent the effects of this information on youth and promote a healthy and harmonious Internet environment”

(OpenNetBulletin)

  • Como programo?
opencv6
OpenCV
  • O que é?
  • Para que serve?
  • Quem utiliza?
  • Como programo?
    • C, C++, Python
    • Em desenvolvimento: Java, Ruby, Matlab e outros times paralelos
    • Windows, Linux, Android, Mac
opencv como programo
OpenCV – Como Programo?
  • Download do OpenCV
    • http://sourceforge.net/projects/opencvlibrary
  • Wiki
    • Guias para compilar/instalar
  • Documentação (http://opencv.itseez.com/)
    • Referência para funções
  • Livros
  • Instalação para o minicurso
    • OpenCV 2.1
    • Codeblocks 10.05
    • Tutorial utilizado
opera es
Operações

Abrir imagem

Ler imagem

Processamento

Criar imagem

highgui
HighGUI
  • Toolkit para funções de user interface
    • Estrutura para trabalhar com imagens e vídeos
    • Criação de janelas, sliders, botões
    • Tratamento de eventos de mouse, teclado

include “highgui.h”

cvloadimage
cvLoadImage()

Nome do arquivocom extensão

CV_LOAD_IMAGE_COLOR = colorida

CV_LOAD_IMAGE_GRAYSCALE = tons de cinza

  • Função para abrir imagens em disco
  • Aloca memória e armazena a imagem em uma estrutura apropriada
  • BMP, DIB, JPEG, JPE, PNG, PBM, PGM, PPM, SR, RAS e TIFF → não suporta gif!

IplImage* cvLoadImage(

const char* filename,

intiscolor= CV_LOAD_IMAGE_COLOR

);

cvnamedwindow
cvNamedWindow()

Nome da janela. Usado como handler para operações na janela

CV_WINDOW_AUTOSIZE = janela do tamanho da imagem

0 = permite que usuário redefina o tamanho da janela

  • Cria janela para mostrar imagens

intcvNamedWindow(

const char* name,

intflags = CV_WINDOW_AUTOSIZE

);

cvshowimage
cvShowImage()

Handler da janela

Nome da variável que aponta para a imagem carregada em cvLoadImage()

  • Ligação entre a imagem e a janela

voidcvShowImage(

const char* name,

constCvArr* image

);

cvwaitkey
cvWaitKey()

Tempo de espera em ms. Default 0 aguarda para sempre

  • Aguarda interação do usuário com o teclado

intcvWaitKey(

intdelay = 0

);

limpeza
Limpeza
  • Liberação dos ponteiros que carregaram as estruturas

voidcvReleaseImage( IplImage** img );

voidcvDestroyWindow( const char* name );

opera es1
Operações

Abrir imagem

Ler imagem

Processamento

Criar imagem

iplimage
IplImage
  • Estrutura para tratamento de imagens

typedefstruct_IplImage {

intnSize;

int ID;

intnChannels;

intalphaChannel;

intdepth;

charcolorModel[4];

charchannelSeq[4];

intdataOrder;

intorigin;

intalign;

intwidth;

intheight;

struct_IplROI* roi;

struct_IplImage* maskROI;

void* imageId;

struct_IplTileInfo* tileInfo;

intimageSize;

char* imageData;

intwidthStep;

intBorderMode[4];

intBorderConst[4];

char* imageDataOrigin;

} IplImage;

iplimage1
IplImage

Número de canais

  • Estrutura para tratamento de imagens

typedefstruct_IplImage {

intnSize;

int ID;

intnChannels;

intalphaChannel;

intdepth;

charcolorModel[4];

charchannelSeq[4];

intdataOrder;

intorigin;

intalign;

intwidth;

intheight;

struct_IplROI* roi;

struct_IplImage* maskROI;

void* imageId;

struct_IplTileInfo* tileInfo;

intimageSize;

char* imageData;

intwidthStep;

intBorderMode[4];

intBorderConst[4];

char* imageDataOrigin;

} IplImage;

iplimage2
IplImage

Profundidade do pixel (bits)

  • Estrutura para tratamento de imagens

typedefstruct_IplImage {

intnSize;

int ID;

intnChannels;

intalphaChannel;

intdepth;

charcolorModel[4];

charchannelSeq[4];

intdataOrder;

intorigin;

intalign;

intwidth;

intheight;

struct_IplROI* roi;

struct_IplImage* maskROI;

void* imageId;

struct_IplTileInfo* tileInfo;

intimageSize;

char* imageData;

intwidthStep;

intBorderMode[4];

intBorderConst[4];

char* imageDataOrigin;

} IplImage;

iplimage3
IplImage

Ponteiro para a primeira linha de dados da imagem

  • Estrutura para tratamento de imagens

typedefstruct_IplImage {

intnSize;

int ID;

intnChannels;

intalphaChannel;

intdepth;

charcolorModel[4];

charchannelSeq[4];

intdataOrder;

intorigin;

intalign;

intwidth;

intheight;

struct_IplROI* roi;

struct_IplImage* maskROI;

void* imageId;

struct_IplTileInfo* tileInfo;

intimageSize;

char* imageData;

intwidthStep;

intBorderMode[4];

intBorderConst[4];

char* imageDataOrigin;

} IplImage;

iplimage4
IplImage

Qtde de bytes entre pontos situados em uma mesma coluna, em linhas diferentes

  • Estrutura para tratamento de imagens

typedefstruct_IplImage {

intnSize;

int ID;

intnChannels;

intalphaChannel;

intdepth;

charcolorModel[4];

charchannelSeq[4];

intdataOrder;

intorigin;

intalign;

intwidth;

intheight;

struct_IplROI* roi;

struct_IplImage* maskROI;

void* imageId;

struct_IplTileInfo* tileInfo;

intimageSize;

char* imageData;

intwidthStep;

intBorderMode[4];

intBorderConst[4];

char* imageDataOrigin;

} IplImage;

leitura
Leitura

Início da leitura (0,0)

Apenas uma matriz

Sequência de pixels B – G – R

leitura1
Leitura

Diferentesjeitos de se fazer a leitura de dados de umaimagem

Nossojeito: leitura horizontal

for( introw = 0; row < img->height; row++ ){

uchar* ptr = (uchar*) ( img->imageData + row* img->widthStep );

for( intcol = 0; col < img->width; col++ ) {

printf( “%d ”, ptr[3*col] ); //acessa componente azul B

printf( “%d ”, ptr[3*col+1] ); //acessa componente verde G

printf( “%d\n”, ptr[3*col+2] ); //acessa componente vermelha R

}

}

opera es2
Operações

Abrir imagem

Ler imagem

Processamento

Criar imagem

refer ncias
Referências

Bradski, G; Kaehler, A. – Learning OpenCV: Computer Vision withthe OpenCV Library. O’Reilly, 2008.

OpenCV Wiki - http://opencv.willowgarage.com/wiki/

OpenNetBulletin – China’s Green Dam: The ImplicationsofGovernmentControlEncroachingonthe Home PC. Disponível em http://opennet.net/sites/opennet.net/files/GreenDam_bulletin.pdf

contato
Contato

[email protected]

http://www.icmc.usp.br/~zinga/

http://viva3d.blogspot.com/

Intermídia 6-209

ad