SlideShare una empresa de Scribd logo
1 de 25
Introdução à visão computacional utilizando software livre Msc. Mauro Carlos Pichiliani (pichilia@ita.br)
Roteiro   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],Introdução à Visão Computacional
Visão Computacional - Fluxo   Aquisição de imagem Pré-processamento Detecção e segmentação Processamento de alto nível Extração de características
Biblioteca OpenCV ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dispositivos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Demo 1: Hello Word com OpenCV #include <cv.h> #include <highgui.h> int main ( int argc, char **argv ) { // Cria a janela cvNamedWindow( “MinhaJanela&quot;, 1 );  // Cria a imagem IplImage *img = cvCreateImage( cvSize( 640, 480 ), IPL_DEPTH_8U, 1 );  CvFont font; double hScale = 1.0; double vScale = 1.0; int lineWidth = 1; cvInitFont( &font, CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC, hScale, vScale, 0, lineWidth ); // Seta a fonte cvPutText( img, &quot;Hello World!&quot;, cvPoint( 200, 400 ), &font, cvScalar( 255, 255, 0 ) ); // Escreve o Hello Word cvShowImage( &quot;My Window&quot;, img ); // Coloca a imagem na janela cvWaitKey(); // Aguarda Tecla return 0; }
Demo 2: Capturando vídeo #include &quot;cv.h&quot; #include &quot;highgui.h&quot; #include <stdio.h> int main() { CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANY ); // Captura da câmera if( !capture ) { fprintf( stderr, &quot;ERROR: capture is NULL &quot; ); getchar();  return -1; } cvNamedWindow( &quot;mywindow&quot;, CV_WINDOW_AUTOSIZE ); //Joga em uma janela while( 1 ) { // Loop infino para continuar capturando o vídeo IplImage* frame = cvQueryFrame( capture );  // Obtém um frame if( !frame ) { fprintf( stderr, &quot;ERROR: frame is null...&quot; ); getchar();  break; } cvShowImage( &quot;mywindow&quot;, frame ); // Mostra a imagem if( (cvWaitKey(10) & 255) == 27 ) break; // Espera um caracter do teclado } cvReleaseCapture( &capture );  // Libera o vídeo cvDestroyWindow( &quot;mywindow&quot; ); // Libera a janela return 0; }
Demo 3: Detecção objetos/Face #include <cv.h> #include <highgui.h> #include <math.h> int main(int argc, char** argv) { IplImage* img; if( argc == 2 && (img=cvLoadImage(argv[1], 1))!= 0) { IplImage* gray = cvCreateImage( cvGetSize(img), 8, 1 ); // Cria a imagem CvMemStorage* storage = cvCreateMemStorage(0); cvCvtColor( img, gray, CV_BGR2GRAY ); cvSmooth( gray, gray, CV_GAUSSIAN, 9, 9 ); // Branco e preto // Detecta os círculos!  CvSeq* circles =  cvHoughCircles( gray, storage, CV_HOUGH_GRADIENT, 2, gray->height/4, 200, 100 ); for( int i = 0; i < circles->total; i++ ) { float* p = (float*)cvGetSeqElem( circles, i ); cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), 3, CV_RGB(0,255,0), -1, 8, 0 ); cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), cvRound(p[2]), CV_RGB(255,0,0), 3, 8, 0 ); } cvNamedWindow( &quot;circles&quot;, 1 ); cvShowImage( &quot;circles&quot;, img ); } return 0; }
Exemplos: Usabilidade (1) ,[object Object]
Exemplos: Usabilidade (2) ,[object Object]
Exemplos: Usabilidade (3) ,[object Object]
Exemplos: Usabilidade (4) ,[object Object]
Exemplos: Vigilância (1) ,[object Object]
Exemplos: Vigilância (2) ,[object Object]
Exemplos: Entretenimento (1) ,[object Object]
Exemplos: Entretenimento (2) ,[object Object]
Exemplos: Entretenimento (3) ,[object Object]
Exemplos: Entretenimento (4) ,[object Object]
Exemplos: Realidade Aumentada (1) ,[object Object]
Exemplos: Realidade Aumentada (2) ,[object Object]
Exemplos: Robótica ,[object Object],[object Object]
Conclusão ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Obrigado! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Mais exemplos Aplicação de exemplo de deteção de elementos em movimento  http://www.codeproject.com/KB/audio-video/Motion_Detection.aspx Descobrir distâncias curtas com uma WebCam e uma apontador laser: http://www.pages.drexel.edu/~twd25/webcam_laser_ranger.html Leitor de código de barras com uma WebCam: http://www.vivaolinux.com.br/artigo/Zebra-Barcode-Reader-Lendo-codigo-de-barras-com-a-sua-Webcam-no-Linux/ Exemplos de projetos gerais que envolvem uma WebCam http://www.raphnet.net/divers/webcam/webcam_en.php

Más contenido relacionado

La actualidad más candente

2023년 인공지능 서비스 트렌드
2023년 인공지능 서비스 트렌드2023년 인공지능 서비스 트렌드
2023년 인공지능 서비스 트렌드SK(주) C&C - 강병호
 
Image to text Converter
Image to text ConverterImage to text Converter
Image to text ConverterDhiraj Raj
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCVdebayanin
 
الدرس الأول: المحيط التكنولوجي من كتاب 7 أساسي
الدرس الأول: المحيط التكنولوجي من كتاب 7 أساسيالدرس الأول: المحيط التكنولوجي من كتاب 7 أساسي
الدرس الأول: المحيط التكنولوجي من كتاب 7 أساسيMinistère de l'éducation
 
AI Computer vision
AI Computer visionAI Computer vision
AI Computer visionKashafnaz2
 
Fine-tuning Pre-Trained Models for Generative AI Applications
Fine-tuning Pre-Trained Models for Generative AI ApplicationsFine-tuning Pre-Trained Models for Generative AI Applications
Fine-tuning Pre-Trained Models for Generative AI ApplicationsBenjaminlapid1
 
Lec7: Medical Image Segmentation (I) (Radiology Applications of Segmentation,...
Lec7: Medical Image Segmentation (I) (Radiology Applications of Segmentation,...Lec7: Medical Image Segmentation (I) (Radiology Applications of Segmentation,...
Lec7: Medical Image Segmentation (I) (Radiology Applications of Segmentation,...Ulaş Bağcı
 
الذكاء الاصطناعي
الذكاء الاصطناعيالذكاء الاصطناعي
الذكاء الاصطناعيnada labib
 
الذكاء الاصطناعي
الذكاء الاصطناعيالذكاء الاصطناعي
الذكاء الاصطناعيAsmaa Abd El-gawad
 
Essential concepts for machine learning
Essential concepts for machine learning Essential concepts for machine learning
Essential concepts for machine learning pyingkodi maran
 
AI and machine learning
AI and machine learningAI and machine learning
AI and machine learningITU
 
veri bilimi.pptx
veri bilimi.pptxveri bilimi.pptx
veri bilimi.pptxHakan ATAY
 

La actualidad más candente (20)

Gamma and Colour Space
Gamma and Colour SpaceGamma and Colour Space
Gamma and Colour Space
 
الأوراكل
الأوراكلالأوراكل
الأوراكل
 
The art of AI Art
The art of AI ArtThe art of AI Art
The art of AI Art
 
2023년 인공지능 서비스 트렌드
2023년 인공지능 서비스 트렌드2023년 인공지능 서비스 트렌드
2023년 인공지능 서비스 트렌드
 
Image to text Converter
Image to text ConverterImage to text Converter
Image to text Converter
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCV
 
الدرس الأول: المحيط التكنولوجي من كتاب 7 أساسي
الدرس الأول: المحيط التكنولوجي من كتاب 7 أساسيالدرس الأول: المحيط التكنولوجي من كتاب 7 أساسي
الدرس الأول: المحيط التكنولوجي من كتاب 7 أساسي
 
Ai Image Generator.pptx
Ai Image Generator.pptxAi Image Generator.pptx
Ai Image Generator.pptx
 
Image Stitching for Panorama View
Image Stitching for Panorama ViewImage Stitching for Panorama View
Image Stitching for Panorama View
 
AI Computer vision
AI Computer visionAI Computer vision
AI Computer vision
 
Fine-tuning Pre-Trained Models for Generative AI Applications
Fine-tuning Pre-Trained Models for Generative AI ApplicationsFine-tuning Pre-Trained Models for Generative AI Applications
Fine-tuning Pre-Trained Models for Generative AI Applications
 
Lec7: Medical Image Segmentation (I) (Radiology Applications of Segmentation,...
Lec7: Medical Image Segmentation (I) (Radiology Applications of Segmentation,...Lec7: Medical Image Segmentation (I) (Radiology Applications of Segmentation,...
Lec7: Medical Image Segmentation (I) (Radiology Applications of Segmentation,...
 
Azure ML Studio
Azure ML StudioAzure ML Studio
Azure ML Studio
 
الذكاء الاصطناعي
الذكاء الاصطناعيالذكاء الاصطناعي
الذكاء الاصطناعي
 
Computer vision ppt
Computer vision pptComputer vision ppt
Computer vision ppt
 
Medical image analysis
Medical image analysisMedical image analysis
Medical image analysis
 
الذكاء الاصطناعي
الذكاء الاصطناعيالذكاء الاصطناعي
الذكاء الاصطناعي
 
Essential concepts for machine learning
Essential concepts for machine learning Essential concepts for machine learning
Essential concepts for machine learning
 
AI and machine learning
AI and machine learningAI and machine learning
AI and machine learning
 
veri bilimi.pptx
veri bilimi.pptxveri bilimi.pptx
veri bilimi.pptx
 

Destacado

Vendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da GoogleVendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da GoogleSandro Moreira
 
Projeto de reconhecimento de placas (2)
Projeto de reconhecimento de placas (2)Projeto de reconhecimento de placas (2)
Projeto de reconhecimento de placas (2)Guilherme Stéfano
 
Introdução à biblioteca OpenCV
Introdução à biblioteca OpenCVIntrodução à biblioteca OpenCV
Introdução à biblioteca OpenCVGuto Kaberdock
 
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...Richiely Paiva
 
Processamento Digital de Imagens - Fundamentos e Aplicações
Processamento Digital de Imagens - Fundamentos e AplicaçõesProcessamento Digital de Imagens - Fundamentos e Aplicações
Processamento Digital de Imagens - Fundamentos e AplicaçõesAldisio Medeiros
 
introdução a visão compuutacional com opencv e python
introdução a visão compuutacional com opencv e pythonintrodução a visão compuutacional com opencv e python
introdução a visão compuutacional com opencv e pythonwhanderley freitas
 
Compilando e Usando OpenCV v. 3.0.0
Compilando e Usando OpenCV v. 3.0.0Compilando e Usando OpenCV v. 3.0.0
Compilando e Usando OpenCV v. 3.0.0André Moreira
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowpichiliani
 

Destacado (9)

Vendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da GoogleVendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
 
Projeto de reconhecimento de placas (2)
Projeto de reconhecimento de placas (2)Projeto de reconhecimento de placas (2)
Projeto de reconhecimento de placas (2)
 
Introdução à biblioteca OpenCV
Introdução à biblioteca OpenCVIntrodução à biblioteca OpenCV
Introdução à biblioteca OpenCV
 
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...
 
Introdução OpenCV (Pt-Br) com exemplos
Introdução OpenCV (Pt-Br) com exemplosIntrodução OpenCV (Pt-Br) com exemplos
Introdução OpenCV (Pt-Br) com exemplos
 
Processamento Digital de Imagens - Fundamentos e Aplicações
Processamento Digital de Imagens - Fundamentos e AplicaçõesProcessamento Digital de Imagens - Fundamentos e Aplicações
Processamento Digital de Imagens - Fundamentos e Aplicações
 
introdução a visão compuutacional com opencv e python
introdução a visão compuutacional com opencv e pythonintrodução a visão compuutacional com opencv e python
introdução a visão compuutacional com opencv e python
 
Compilando e Usando OpenCV v. 3.0.0
Compilando e Usando OpenCV v. 3.0.0Compilando e Usando OpenCV v. 3.0.0
Compilando e Usando OpenCV v. 3.0.0
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
 

Similar a Introdução à visão computacional utilizando software livre

Internet das Coisas com Android things e Machine Learning
Internet das Coisas com Android things e Machine LearningInternet das Coisas com Android things e Machine Learning
Internet das Coisas com Android things e Machine LearningAlvaro Viebrantz
 
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?Stefanini
 
Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...
Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...
Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...Rio Info
 
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - MackenzieIntrodução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenziejonathanblacknight
 
Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadoshenriqueprossi
 
Web Rangers e Power APIs
Web Rangers e Power APIsWeb Rangers e Power APIs
Web Rangers e Power APIsEliezer Bernart
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Flávio Ribeiro
 
Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTV
Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTVDesenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTV
Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTVmulder3
 
Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight  Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight Luciano Condé
 
Introdução à utilização de openFrameworks para o desenvolvimento de aplicaçõ...
Introdução à utilização de openFrameworks para  o desenvolvimento de aplicaçõ...Introdução à utilização de openFrameworks para  o desenvolvimento de aplicaçõ...
Introdução à utilização de openFrameworks para o desenvolvimento de aplicaçõ...Christopher Cerqueira
 
[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...
[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...
[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...Christopher Cerqueira
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareFábio Nogueira de Lucena
 
Workshop Kinect
Workshop Kinect Workshop Kinect
Workshop Kinect Ivan Terra
 
Conhecendo a Plataforma .NET
Conhecendo a Plataforma .NETConhecendo a Plataforma .NET
Conhecendo a Plataforma .NETPedro Alves Jr.
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4CDS
 

Similar a Introdução à visão computacional utilizando software livre (20)

Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 
Internet das Coisas com Android things e Machine Learning
Internet das Coisas com Android things e Machine LearningInternet das Coisas com Android things e Machine Learning
Internet das Coisas com Android things e Machine Learning
 
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
 
Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...
Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...
Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...
 
OpenKinect, o Kinect para todos
OpenKinect, o Kinect para todosOpenKinect, o Kinect para todos
OpenKinect, o Kinect para todos
 
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - MackenzieIntrodução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
 
Tracking.js
Tracking.jsTracking.js
Tracking.js
 
Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcados
 
Web Rangers e Power APIs
Web Rangers e Power APIsWeb Rangers e Power APIs
Web Rangers e Power APIs
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
 
Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTV
Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTVDesenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTV
Desenvolvimento de Aplicacoes de TV interactiva na plataforma MEO IPTV
 
Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight  Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight
 
Introdução à utilização de openFrameworks para o desenvolvimento de aplicaçõ...
Introdução à utilização de openFrameworks para  o desenvolvimento de aplicaçõ...Introdução à utilização de openFrameworks para  o desenvolvimento de aplicaçõ...
Introdução à utilização de openFrameworks para o desenvolvimento de aplicaçõ...
 
[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...
[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...
[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
WRVA 2015
WRVA 2015WRVA 2015
WRVA 2015
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de software
 
Workshop Kinect
Workshop Kinect Workshop Kinect
Workshop Kinect
 
Conhecendo a Plataforma .NET
Conhecendo a Plataforma .NETConhecendo a Plataforma .NET
Conhecendo a Plataforma .NET
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
 

Más de pichiliani

Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade AumentadaRastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade Aumentadapichiliani
 
Interfaces hands free para o mundo atual e pós-Corona vírus
Interfaces hands free para o mundo atual  e pós-Corona vírusInterfaces hands free para o mundo atual  e pós-Corona vírus
Interfaces hands free para o mundo atual e pós-Corona víruspichiliani
 
The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...pichiliani
 
Machine Learning & Machine Teaching
Machine Learning & Machine TeachingMachine Learning & Machine Teaching
Machine Learning & Machine Teachingpichiliani
 
TJBot: Incorporando um chatbot em um robô
TJBot:  Incorporando um chatbot em um robôTJBot:  Incorporando um chatbot em um robô
TJBot: Incorporando um chatbot em um robôpichiliani
 
Carreira de cientista
Carreira de cientistaCarreira de cientista
Carreira de cientistapichiliani
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimentopichiliani
 
O papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learningO papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learningpichiliani
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLpichiliani
 
Python x R: mas e o Weka?
Python x R: mas e o Weka? Python x R: mas e o Weka?
Python x R: mas e o Weka? pichiliani
 
Rastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtualRastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtualpichiliani
 
SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?pichiliani
 
MediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastMediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastpichiliani
 
Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015pichiliani
 
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...pichiliani
 
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...pichiliani
 
Como lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQLComo lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQLpichiliani
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimentopichiliani
 
Projeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement ApplicationProjeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement Applicationpichiliani
 
HTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement ApplicationHTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement Applicationpichiliani
 

Más de pichiliani (20)

Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade AumentadaRastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
 
Interfaces hands free para o mundo atual e pós-Corona vírus
Interfaces hands free para o mundo atual  e pós-Corona vírusInterfaces hands free para o mundo atual  e pós-Corona vírus
Interfaces hands free para o mundo atual e pós-Corona vírus
 
The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...
 
Machine Learning & Machine Teaching
Machine Learning & Machine TeachingMachine Learning & Machine Teaching
Machine Learning & Machine Teaching
 
TJBot: Incorporando um chatbot em um robô
TJBot:  Incorporando um chatbot em um robôTJBot:  Incorporando um chatbot em um robô
TJBot: Incorporando um chatbot em um robô
 
Carreira de cientista
Carreira de cientistaCarreira de cientista
Carreira de cientista
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimento
 
O papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learningO papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learning
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQL
 
Python x R: mas e o Weka?
Python x R: mas e o Weka? Python x R: mas e o Weka?
Python x R: mas e o Weka?
 
Rastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtualRastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtual
 
SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?
 
MediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastMediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCast
 
Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015
 
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
 
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
 
Como lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQLComo lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQL
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimento
 
Projeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement ApplicationProjeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement Application
 
HTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement ApplicationHTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement Application
 

Introdução à visão computacional utilizando software livre

  • 1. Introdução à visão computacional utilizando software livre Msc. Mauro Carlos Pichiliani (pichilia@ita.br)
  • 2.
  • 3.
  • 4. Visão Computacional - Fluxo Aquisição de imagem Pré-processamento Detecção e segmentação Processamento de alto nível Extração de características
  • 5.
  • 6.
  • 7. Demo 1: Hello Word com OpenCV #include <cv.h> #include <highgui.h> int main ( int argc, char **argv ) { // Cria a janela cvNamedWindow( “MinhaJanela&quot;, 1 ); // Cria a imagem IplImage *img = cvCreateImage( cvSize( 640, 480 ), IPL_DEPTH_8U, 1 ); CvFont font; double hScale = 1.0; double vScale = 1.0; int lineWidth = 1; cvInitFont( &font, CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC, hScale, vScale, 0, lineWidth ); // Seta a fonte cvPutText( img, &quot;Hello World!&quot;, cvPoint( 200, 400 ), &font, cvScalar( 255, 255, 0 ) ); // Escreve o Hello Word cvShowImage( &quot;My Window&quot;, img ); // Coloca a imagem na janela cvWaitKey(); // Aguarda Tecla return 0; }
  • 8. Demo 2: Capturando vídeo #include &quot;cv.h&quot; #include &quot;highgui.h&quot; #include <stdio.h> int main() { CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANY ); // Captura da câmera if( !capture ) { fprintf( stderr, &quot;ERROR: capture is NULL &quot; ); getchar(); return -1; } cvNamedWindow( &quot;mywindow&quot;, CV_WINDOW_AUTOSIZE ); //Joga em uma janela while( 1 ) { // Loop infino para continuar capturando o vídeo IplImage* frame = cvQueryFrame( capture ); // Obtém um frame if( !frame ) { fprintf( stderr, &quot;ERROR: frame is null...&quot; ); getchar(); break; } cvShowImage( &quot;mywindow&quot;, frame ); // Mostra a imagem if( (cvWaitKey(10) & 255) == 27 ) break; // Espera um caracter do teclado } cvReleaseCapture( &capture ); // Libera o vídeo cvDestroyWindow( &quot;mywindow&quot; ); // Libera a janela return 0; }
  • 9. Demo 3: Detecção objetos/Face #include <cv.h> #include <highgui.h> #include <math.h> int main(int argc, char** argv) { IplImage* img; if( argc == 2 && (img=cvLoadImage(argv[1], 1))!= 0) { IplImage* gray = cvCreateImage( cvGetSize(img), 8, 1 ); // Cria a imagem CvMemStorage* storage = cvCreateMemStorage(0); cvCvtColor( img, gray, CV_BGR2GRAY ); cvSmooth( gray, gray, CV_GAUSSIAN, 9, 9 ); // Branco e preto // Detecta os círculos! CvSeq* circles = cvHoughCircles( gray, storage, CV_HOUGH_GRADIENT, 2, gray->height/4, 200, 100 ); for( int i = 0; i < circles->total; i++ ) { float* p = (float*)cvGetSeqElem( circles, i ); cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), 3, CV_RGB(0,255,0), -1, 8, 0 ); cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), cvRound(p[2]), CV_RGB(255,0,0), 3, 8, 0 ); } cvNamedWindow( &quot;circles&quot;, 1 ); cvShowImage( &quot;circles&quot;, img ); } return 0; }
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25. Mais exemplos Aplicação de exemplo de deteção de elementos em movimento http://www.codeproject.com/KB/audio-video/Motion_Detection.aspx Descobrir distâncias curtas com uma WebCam e uma apontador laser: http://www.pages.drexel.edu/~twd25/webcam_laser_ranger.html Leitor de código de barras com uma WebCam: http://www.vivaolinux.com.br/artigo/Zebra-Barcode-Reader-Lendo-codigo-de-barras-com-a-sua-Webcam-no-Linux/ Exemplos de projetos gerais que envolvem uma WebCam http://www.raphnet.net/divers/webcam/webcam_en.php