SlideShare uma empresa Scribd logo
COMPILANDO
OPENCV 3.0.0
André Moreira
Junho, 2014
QUEM SOU EU...
# André de Souza Moreira;
# Mestando na PUC-RIO;
# Pesquisador no Instituto Tecgraf em Computação Gráfica;
# Antes: Pesquisador no NCA em Processamento de Imagens Médicas.
andredsm.com
O que é OPENCV?
# É uma biblioteca open source escrita em C++ para visão computacional;
# Foi desenvolvida inicialmente pela Intel;
# Existem diversos wrapers para outras linguagens como Python e Java;
# Roda no Windows, Android, Linux, OS X e outros;
# Oferece suporte à CUDA e OpenCL.
# Sua última versão release é a 2.4.9, mas é possível utilizar a versão 3.0.0 que encontra-se
em desenvolvimento (Junho, 2014).
OBJETIVOS
# Compilar o OpenCV com o Visual Studio 2013.
# Executar um exemplo do OpenCV;
# Linkar o OpenCV com um novo projeto em branco no Visual Studio 2013.
ANTES DE
COMPILAR
Passo :
Baixar o código fonte
# Disponível em https://github.com/Itseez/opencv
# Opção 1: Download diretamente do website.
1
Passo :
Baixar o código fonte
# Option 2: Clone do repositório git:
# A vantagem desse método consiste na possibilidade de ter uma versão do código fonte
sempre atualizada com a versão mais recente do github. Dessa forma é possível compilar a
biblioteca sempre que houver uma nova feature ou algum bug for corrigido.
1
$ git clone git@github.com:Itseez/opencv.git
Passo :
Instalar Dependências
# Existem diversas dependências que podem ser utilizadas na compilação do OpenCV, tais
como: Qt, Python, Opengl, pdflatex para a geração da documentação, CUDA, OpenCL e
outros.
# Por exemplo, você pode instalar o python 2.7.x e o numpy para buildar o wrapper do
python e utilizar o OpenCV no python.
2
# Instale o Cmake
• Disponível em http://www.cmake.org/
# Abra o cmake-gui, indique o local onde o código do OpenCV encontra-se (1) e onde os
arquivos resultantes do build serão gerados(2). Finalmente, clique no botão Configure
(3).
Passo :
Preparando o projeto:
3
(1)
(2)
(3)
# Selecione o tipo de projeto que será gerado:
• No nosso caso, escolha o Visual Studio 2013. (Sim, o Visual Studio 2013 é a opção
Visual Studio 12!) :P
Passo :
Preparando o projeto:
3
# O cmake irá mostrar algumas opções de build, entre elas:
• BUILD: selecione os módulos e extensões que serão utilizados na compilação.
• WITH: pode-se habilitar o uso de outras tecnologias, tal como CUDA.
• INSTALL: quais arquivos irão ser movidos para o diretório de instalação.
• CMAKE/CMAKE_INSTAL_PREFIX:
Selecione o diretório padrão onde a
biblioteca será instalada.
# Após escolher as opções acima, clique no botão
Configure novamente. Se tudo estiver OK, todos
os campos que estavam vermelho irão aparecer
com o fundo branco.
# Por último, clique no botão Generate.
Passo :
Preparando o projeto:
3
Minha Configuração:
COMPILANDO O PROJETO
# Vá para a pasta de build e abra o arquivo de solução do Visual Studio (Opencv.sln).
# Selecione a versão da biblioteca a ser compilada (Debug ou Release, x86 ou x64) (1) e
depois compile o projeto ALL_BUILD (2). (Essa etapa irá compilar todos os projetos
exibidos no Solution Explorer).
# Se nenhum erro acontecer, compile o projeto INSTALL.
Passo :
Compilando o projeto
4
(1)
(2)
(3)
# Copie todas as .dll de {INSTALL_DIRECTORY} x64vc12bin para:
• C:WindowsSystem32 Se a biblioteca foi compilada em x64
• C:WindowsSysWOW64 Se a biblioteca foi compilada em x86
# Nesse ponto, você já pode rodar qualquer um dos exemplos do OpenCV e estes devem
funcionar sem apresentar erros.
# Copie todos os arquivos de {INSTALL_DIRECTORY} x64vc12lib para
{VISUALSTUDIO_DIRECTORY}VClib (x86) ou {VISUALSTUDIO_DIRECTORY}VClibamd64
(x64)
# Copie as duas pastas que estão em {INSTALL_DIRECTORY} include para
{VISUALSTUDIO_DIRECTORY}VCinclude
PASSO :
Instalando a biblioteca
5
RODANDO OS EXEMPLOS
# Você podem rodar os exemplos que estão em {INSTALL_DIRECTORY}
x64vc12samples* e assim verificar se tudo funciona normalmente.
• Exemplo: executando o exemplo cppcpp-example-delaunay2.exe:
Linkando com a biblioteca
# Crie um novo projeto no Visual Studio 2013. (Ctrl + Shift + N);
# Vá em DEBUG -> {projectName} Properties. (Alt + F7);
# Em Linker > Input > Additional Dependecies, liste o nome dos módulos que você precisa
no seu projeto:
• Exemplo:
Linkando com a biblioteca
# Crie um arquivo .cpp (CTRL+SHIFT+A) e execute-o (CTRL+F5):
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <stdlib.h>
#include <stdio.h>
using namespace cv;
/** @function main */
int main(int argc, char** argv)
{
Mat src, src_gray, dst;
int kernel_size = 3;
int scale = 1;
int delta = 0;
int ddepth = CV_16S;
char* window_name = "Laplace Demo";
/// Load your image
src = imread("myImage.jpg");
if (!src.data)
{
return -1;
}
/// Remove noise by blurring with a Gaussian filter
GaussianBlur(src, src, Size(3, 3), 0, 0, BORDER_DEFAULT);
/// Convert the image to grayscale
cvtColor(src, src_gray, COLOR_RGB2GRAY);
/// Create window
namedWindow(window_name, WINDOW_AUTOSIZE);
/// Apply Laplace function
Mat abs_dst;
Laplacian(src_gray, dst, ddepth, kernel_size, scale, delta, BORDER_DEFAULT);
convertScaleAbs(dst, abs_dst);
/// Show what you got
imshow(window_name, abs_dst);
waitKey(0);
return 0;
}
O Resultado:
Ref: http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/laplace_operator/laplace_operator.html
Precisa de ajuda?
# Documentação Oficial:
• http://www.teste.com
# Comunidade do Stackoverflow:
• http://stackoverflow.com/questions/tagged/opencv
# Guia de instalação do OpenCV:
• http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_install/windows_install.html
# Por fim, este ótimo livro: ;)
OpenCV Computer Vision Application Programming Cookbook (2nd Edition),
Robert Laganiere.
ISBN-13: 9781782161486
Publisher: Packt Publishing
Publication date: 8/1/2014
Pages: 390

Mais conteúdo relacionado

ODP
introdução a visão compuutacional com opencv e python
PPT
Simpósio Unicruz: OpenCV + Python (parte 1)
PPTX
Introdução OpenCV (Pt-Br) com exemplos
PDF
Introdução à biblioteca OpenCV
PPTX
Introdução ao processamento de imagens com OpenCV (cont)
PPTX
Introdução ao CMake
PPT
Introdução à visão computacional utilizando software livre
PPTX
Tchelinux 2014 visão computacional
introdução a visão compuutacional com opencv e python
Simpósio Unicruz: OpenCV + Python (parte 1)
Introdução OpenCV (Pt-Br) com exemplos
Introdução à biblioteca OpenCV
Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao CMake
Introdução à visão computacional utilizando software livre
Tchelinux 2014 visão computacional

Mais procurados (20)

PDF
PPT
Mock Objects
PDF
Frameworks para C 3º DeSif
PPTX
Estruturas de dados com C++ e STL
PDF
Pós Ruy - 2 e 3 Camadas - Teste de componentes
PPTX
Maratona de Programação com STL
PPTX
MSDN Webcast - Melhores práticas cross browser
PDF
Programando Software Livre em C
PDF
Controlando o fluxo de forma simples para construir pipelines complexas
PDF
Curso de Node JS Básico
PDF
Testes unitários como ferramentas de design de código
ODP
Calourada2010
PDF
PHP-CLI em 7 passos
PDF
Guia Rápido TI-NSpire
PDF
Testes unitários como ferramentas de design de código
PDF
Canal analogico do_pic
Mock Objects
Frameworks para C 3º DeSif
Estruturas de dados com C++ e STL
Pós Ruy - 2 e 3 Camadas - Teste de componentes
Maratona de Programação com STL
MSDN Webcast - Melhores práticas cross browser
Programando Software Livre em C
Controlando o fluxo de forma simples para construir pipelines complexas
Curso de Node JS Básico
Testes unitários como ferramentas de design de código
Calourada2010
PHP-CLI em 7 passos
Guia Rápido TI-NSpire
Testes unitários como ferramentas de design de código
Canal analogico do_pic
Anúncio

Destaque (16)

PDF
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...
PDF
Projeto de reconhecimento de placas (2)
PDF
Processamento Digital de Imagens - Fundamentos e Aplicações
PDF
Comunicação Serial Linux
PPTX
Visão computacional em embarcados
PDF
Apresentação visão computacional
PDF
Introducción a los Algoritmos Genéticos
PDF
Crando Plugins en ImageJ [de http://www.imagingbook.com/fileadmin/goodies/ijt...
PDF
Técnicas de PDI com Java - Ercemapi 2009
PDF
Computação Gráfica em Python
PDF
White Paper: Sistemas de Visão Artificial Industrial - Factores a Ter em Cons...
PDF
Introdução ao Processamento de Imagens Digitais
PDF
Introduction to OpenCV (with Java)
PDF
O que é Periódico Indexado e como identificar nas principais bases de dados?
PPTX
Segurança de redes - Conceitos de firewall
PDF
PDI Slides
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...
Projeto de reconhecimento de placas (2)
Processamento Digital de Imagens - Fundamentos e Aplicações
Comunicação Serial Linux
Visão computacional em embarcados
Apresentação visão computacional
Introducción a los Algoritmos Genéticos
Crando Plugins en ImageJ [de http://www.imagingbook.com/fileadmin/goodies/ijt...
Técnicas de PDI com Java - Ercemapi 2009
Computação Gráfica em Python
White Paper: Sistemas de Visão Artificial Industrial - Factores a Ter em Cons...
Introdução ao Processamento de Imagens Digitais
Introduction to OpenCV (with Java)
O que é Periódico Indexado e como identificar nas principais bases de dados?
Segurança de redes - Conceitos de firewall
PDI Slides
Anúncio

Semelhante a Compilando e Usando OpenCV v. 3.0.0 (20)

PDF
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
PPTX
Seminário: C#
PDF
Treinamento Android Embarcado
PDF
Iniciando com django
PPTX
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
PDF
_Aula 1 - Introdução à Linguagem Java.pdf
PPTX
Construindo pipelines com Azure DevOps
PPTX
PDF
Introdução ao docker
PPT
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
PDF
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
PDF
Linguagem c
PPTX
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
PPT
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
PPTX
ExtJS Jumpstart Parte 2
PPTX
ASP.NET vNext no .NET Architects Days 2014
PDF
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
PPTX
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
PDF
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Seminário: C#
Treinamento Android Embarcado
Iniciando com django
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
_Aula 1 - Introdução à Linguagem Java.pdf
Construindo pipelines com Azure DevOps
Introdução ao docker
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
Linguagem c
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
ExtJS Jumpstart Parte 2
ASP.NET vNext no .NET Architects Days 2014
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers

Último (16)

PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
COBITxITIL-Entenda as diferença em uso governança TI
Processos na gestão de transportes, TM100 Col18
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Arquitetura de computadores - Memórias Secundárias
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx

Compilando e Usando OpenCV v. 3.0.0

  • 2. QUEM SOU EU... # André de Souza Moreira; # Mestando na PUC-RIO; # Pesquisador no Instituto Tecgraf em Computação Gráfica; # Antes: Pesquisador no NCA em Processamento de Imagens Médicas. andredsm.com
  • 3. O que é OPENCV? # É uma biblioteca open source escrita em C++ para visão computacional; # Foi desenvolvida inicialmente pela Intel; # Existem diversos wrapers para outras linguagens como Python e Java; # Roda no Windows, Android, Linux, OS X e outros; # Oferece suporte à CUDA e OpenCL. # Sua última versão release é a 2.4.9, mas é possível utilizar a versão 3.0.0 que encontra-se em desenvolvimento (Junho, 2014).
  • 4. OBJETIVOS # Compilar o OpenCV com o Visual Studio 2013. # Executar um exemplo do OpenCV; # Linkar o OpenCV com um novo projeto em branco no Visual Studio 2013.
  • 6. Passo : Baixar o código fonte # Disponível em https://github.com/Itseez/opencv # Opção 1: Download diretamente do website. 1
  • 7. Passo : Baixar o código fonte # Option 2: Clone do repositório git: # A vantagem desse método consiste na possibilidade de ter uma versão do código fonte sempre atualizada com a versão mais recente do github. Dessa forma é possível compilar a biblioteca sempre que houver uma nova feature ou algum bug for corrigido. 1 $ git clone git@github.com:Itseez/opencv.git
  • 8. Passo : Instalar Dependências # Existem diversas dependências que podem ser utilizadas na compilação do OpenCV, tais como: Qt, Python, Opengl, pdflatex para a geração da documentação, CUDA, OpenCL e outros. # Por exemplo, você pode instalar o python 2.7.x e o numpy para buildar o wrapper do python e utilizar o OpenCV no python. 2
  • 9. # Instale o Cmake • Disponível em http://www.cmake.org/ # Abra o cmake-gui, indique o local onde o código do OpenCV encontra-se (1) e onde os arquivos resultantes do build serão gerados(2). Finalmente, clique no botão Configure (3). Passo : Preparando o projeto: 3 (1) (2) (3)
  • 10. # Selecione o tipo de projeto que será gerado: • No nosso caso, escolha o Visual Studio 2013. (Sim, o Visual Studio 2013 é a opção Visual Studio 12!) :P Passo : Preparando o projeto: 3
  • 11. # O cmake irá mostrar algumas opções de build, entre elas: • BUILD: selecione os módulos e extensões que serão utilizados na compilação. • WITH: pode-se habilitar o uso de outras tecnologias, tal como CUDA. • INSTALL: quais arquivos irão ser movidos para o diretório de instalação. • CMAKE/CMAKE_INSTAL_PREFIX: Selecione o diretório padrão onde a biblioteca será instalada. # Após escolher as opções acima, clique no botão Configure novamente. Se tudo estiver OK, todos os campos que estavam vermelho irão aparecer com o fundo branco. # Por último, clique no botão Generate. Passo : Preparando o projeto: 3
  • 14. # Vá para a pasta de build e abra o arquivo de solução do Visual Studio (Opencv.sln). # Selecione a versão da biblioteca a ser compilada (Debug ou Release, x86 ou x64) (1) e depois compile o projeto ALL_BUILD (2). (Essa etapa irá compilar todos os projetos exibidos no Solution Explorer). # Se nenhum erro acontecer, compile o projeto INSTALL. Passo : Compilando o projeto 4 (1) (2) (3)
  • 15. # Copie todas as .dll de {INSTALL_DIRECTORY} x64vc12bin para: • C:WindowsSystem32 Se a biblioteca foi compilada em x64 • C:WindowsSysWOW64 Se a biblioteca foi compilada em x86 # Nesse ponto, você já pode rodar qualquer um dos exemplos do OpenCV e estes devem funcionar sem apresentar erros. # Copie todos os arquivos de {INSTALL_DIRECTORY} x64vc12lib para {VISUALSTUDIO_DIRECTORY}VClib (x86) ou {VISUALSTUDIO_DIRECTORY}VClibamd64 (x64) # Copie as duas pastas que estão em {INSTALL_DIRECTORY} include para {VISUALSTUDIO_DIRECTORY}VCinclude PASSO : Instalando a biblioteca 5
  • 16. RODANDO OS EXEMPLOS # Você podem rodar os exemplos que estão em {INSTALL_DIRECTORY} x64vc12samples* e assim verificar se tudo funciona normalmente. • Exemplo: executando o exemplo cppcpp-example-delaunay2.exe:
  • 17. Linkando com a biblioteca # Crie um novo projeto no Visual Studio 2013. (Ctrl + Shift + N); # Vá em DEBUG -> {projectName} Properties. (Alt + F7); # Em Linker > Input > Additional Dependecies, liste o nome dos módulos que você precisa no seu projeto: • Exemplo:
  • 18. Linkando com a biblioteca # Crie um arquivo .cpp (CTRL+SHIFT+A) e execute-o (CTRL+F5): #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp> #include <stdlib.h> #include <stdio.h> using namespace cv; /** @function main */ int main(int argc, char** argv) { Mat src, src_gray, dst; int kernel_size = 3; int scale = 1; int delta = 0; int ddepth = CV_16S; char* window_name = "Laplace Demo"; /// Load your image src = imread("myImage.jpg"); if (!src.data) { return -1; } /// Remove noise by blurring with a Gaussian filter GaussianBlur(src, src, Size(3, 3), 0, 0, BORDER_DEFAULT); /// Convert the image to grayscale cvtColor(src, src_gray, COLOR_RGB2GRAY); /// Create window namedWindow(window_name, WINDOW_AUTOSIZE); /// Apply Laplace function Mat abs_dst; Laplacian(src_gray, dst, ddepth, kernel_size, scale, delta, BORDER_DEFAULT); convertScaleAbs(dst, abs_dst); /// Show what you got imshow(window_name, abs_dst); waitKey(0); return 0; }
  • 20. Precisa de ajuda? # Documentação Oficial: • http://www.teste.com # Comunidade do Stackoverflow: • http://stackoverflow.com/questions/tagged/opencv # Guia de instalação do OpenCV: • http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_install/windows_install.html # Por fim, este ótimo livro: ;) OpenCV Computer Vision Application Programming Cookbook (2nd Edition), Robert Laganiere. ISBN-13: 9781782161486 Publisher: Packt Publishing Publication date: 8/1/2014 Pages: 390