Guia de como buildar/compilar o OpenCV através do código disponibilizado no repositório oficial do projeto (github). O tutorial utiliza o Visual Studio, mas o processo pode ser adaptado para outras IDEs ou ambientes com poucas modificações. A versão do OpenCV utilizada é a 3.0.0 que encontra-se em desenvolvimento no momento em que este documento foi escrito (Junho de 2014).
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;
}