Agora irei faze-lo no Windows usando o Visual Studio.
Isso se dá porque geralmente eu prefiro o Linux ao Windows para desenvolvimento. A escolha é pessoal, e foi um hábito adquirido, no passar dos anos, pois o Linux, em minha opinião, oferece uma oportunidade maior de crescimento profissional. No que tange aprendizado de baixo nível.
Porem sem querer entrar nas questões de plataforma, há também necessidade, vez ou outra, usar o windows para desenvolvimento.
E para ser sincero, muitas vezes me sinto desconfortável, até pela falta de prática do uso desta plataforma.
Instalando o OPENCV no Windows
Porem para chegar nesse ponto, irei apresentar alguns artigos, que devem ser necessários para este fim.
O primeiro é a instalação do OpenCV e sua respectiva configuração no ambiente windows.
Primeiramente vamos baixar o opencv no site:
Baixe a ultima versão desta lib.
De forma geral ao tentar instalar, ele compacta na pasta: C:\Users\marce\Downloads
Eu costumo mover ele para o raiz do D:\ , no caso, caso não use um segundo disco, faça em seu c:\
Pronto a instalação do OpenCV foi realizada.
Preparando ambiente Visual Studio
Agora vou criar uma pasta VS, dentro do meu D:\opencv\
O C precisa de duas coisas para funcionar, se tratando de bibliotecas, includes e libs.
Includes são os cabeçalhos das funções.
Libs são os binários (DLLs)
Copiando a pasta include, já marcada acima, dentro do VS.
No caminho D:\opencv\build\x64\vc16 ou equivalente, pois o build contem os arquivos pré compilados, onde no meu caso irei utilizar a plataforma win 64 bits, por isso o X64. Copiarei as pastas bin e lib da pasta, para o VS, conforme mostrado a seguir:
Agora precisamos incluir o caminho completo do bin, nas variáveis de ambiente:
Criando Hello World
Agora vamos dar inicio a criação do projeto no visual studio.
Entre no Visual Studio e crie um projeto.
Agora, selecionamos o tipo de projeto:
Como o visual studio tem muitos templates, é mais fácil pesquisar c++ na aba de pesquisa, e selecionar Projeto Vazio, conforme figura acima.
Digite o nome Hello World no Nome do projeto, conforme apresentado, e o local, indique a sua pasta de projeto. Por fim click no botão CRIAR.
Va na aba de gerenciador de Soluções, e click com botão direito no nome do projeto. Selecione NEW > Novo Item.
Mude para main.cpp e pressione adicionar.
Agora, iremos mudar o projeto, para incluir os locais que criamos no opencv.
Em PROJETO > Pagina de Propriedades, conforme figura abaixo:
Abra a aba C/C++, localize Diretórios de Inclusão Adicionais, incluindo o seguinte item:
Inclua a pasta do include.
Agora vamos adicionar a lib.
Em GERAL > Vinculador , Diretórios de Biblioteca Adicionais
Inclua o a pasta D:\opencv\VS\lib
Agora iremos mostrar qual a lib que será adicionada.
A lib que iremos usar para debug, é opencv_world480d.lib.
Para isso vamos em Propriendades de Configuração > Vinculador > Entrada > Dependências Adicionais.
Pronto agora vamos ao código.
Inclusão do fonte:
Iremos usar o fonte que apontamos no artigo anterior, com uma pequena modificação.
#include <opencv2/opencv.hpp>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace cv;
using namespace std;
int main(int, char**)
{
Mat frame;
//--- INITIALIZE VIDEOCAPTURE
VideoCapture cap;
// open the default camera using default API
//cap.open(0);
// OR advance usage: select any API backend
int deviceID = 0; // 0 = open default camera
int apiID = cv::CAP_ANY; // 0 = autodetect default API
// open selected camera using selected API
cap.open(deviceID, apiID);
// check if we succeeded
if (!cap.isOpened()) {
cerr << "ERROR! Unable to open camera\n";
return -1;
}
//--- GRAB AND WRITE LOOP
cout << "Start grabbing" << endl
<< "Press any key to terminate" << endl;
for (;;)
{
// wait for a new frame from camera and store it into 'frame'
cap.read(frame);
// check if we succeeded
if (frame.empty()) {
cerr << "ERROR! blank frame grabbed\n";
break;
}
// show live and wait for a key with timeout long enough to show images
imshow("Live", frame);
if (waitKey(5) >= 0)
break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}
Salve o programa, e como de praxe para o windows, reinicie o visual studio, para validar as modificações do ambiente.
Agora é só rodar o OpenCV e pronto.
Por fim para aqueles que quiserem, segue o github:
O fpcupdeluxe é o instalador do lazarus já com atualização de pacotes automáticos e plataformas.
Qual a diferença de instalar o lazarus e o fpcupdeluxe?
No lazarus, voce instala apenas os compiladores para a plataforma alvo, ou seja, para o sistema que esta instalando. Isso quer dizer, que se instalar no windows 10, terá apenas os compiladores do windows 10.
Já o fpcupdeluxe, voce alem de instalar o lazarus do windows 10, no caso do nosso exemplo acima, tambem, já pode preparar binarios em linux i386, alem de arm, mac os, android entre outras plataformas que o lazarus permite compilar.
Existe um ótimo tutorial, para quem deseja instalar no linux i386, segue o link:
Neste exemplo, iremos mostrar uma janela simples, conforme apresentado abaixo:
Primeiramente precisamos apontar para o target correto, para isso, iremos em Project, selecionando a opção Project Options.
Selecione a opção Compiler Options, da arvore de opções do lado esquerdo.
Selecione a opção Config and Target, selecione agora a opção Target OS, indicando Linux.
Selecione o Target CPU family X86_64, conforme figura acima.
Para ter certeza que o processo de instalação esta correto, iremos clicar no botão Test, conforme figura acima.
Poderão surgir alguns avisos, dizendo que os fontes estão duplicados, dê ignore.
Click no botão OK.
Pronto! Podemos gerar o binário.
Agora iremos gerar o binário, simplesmente Clicando na opção de menu RUN, no sub item Build.
Estamos quase acabando, pois já geramos nosso binário. Agora devemos leva-lo para o linux e testar.
O nosso projeto foi originalmente gravado em
C:\fpcupdeluxe\fpcupdeluxe\projects\projetos\hello world
Podemos ver, que existem 2 arquivos hello, o primeiro com data de hoje, e o segundo com data de ontem. O primeiro já é o nosso aplicativo linux, e deve ser copiado para uma pasta no linux.
Conforme figura acima, podemos ver que copiamos o arquivo para a pasta do download.
O próximo passo é dar permissão de execução no arquivo.
Para tanto, iremos na pasta e em seguida dar o comando:
chmod +777 ./hello
Pronto, agora basta chamar nosso aplicativo.
Ao clicar no nosso botão, teremos o seguinte resultado:
Observando, que agora temos 3 opções de binário.
Gerando binário para o MAC OS
Agora iremos para nossa terceira etapa, gerando para o MAC.
Irei gerar o binário para este mac, um modelo 2009, já velinho.
Que venho apresentando em diversos posts.
Primeiramente precisamos saber a versão do processador.
No nosso exemplo usamos um processador INTEL Core 2 Duo, o que iremos parametrizar.
Agora iremos novamente entrar no nosso fpcupdeluxe-x86_64-win64.exe, localizado na pasta C:\fpcupdeluxe
Entraremos na aba CROSS, e em seguida selecionamos CPU i386.
Agora marcamos no OS, o sistema darwin, que é o MACOS.
Click em INSTALL COMPILER, e mostrará a aba abaixo, informando que para rodar o free pascal, necessita de versão superior ao 3.2, dê Yes.
Pronto, agora é só aguardar…
Para testar e fazermos testes, usaremos o RealVNC, pois facilita em muito.
Para tanto, configure em seu mac uma versão do RealVNC, e conecte com o view no seu PC, conforme demonstrado abaixo:
Crie uma pasta no MAC, para levar o binario.
Abra a pasta e já deixe pronto para a próxima etapa.
Pronto! A maquina cross esta pronta!
Agora iremos compilar no MAC
Para tanto, iremos abrir o Lazarus, que fica localizado em C:\fpcupdeluxe\fpcupdeluxe\lazarus.
Para rodar o Lazarus, execute o startlazarus, conforme figura acima.
Para gerar, entre no menu na opção Project, no sub item Project Options.
Agora, selecione a arvore de opções Compiler Options, e em seguida o sub item Config and Target, conforme figura acima.
Selecione no Target OS, o item Darwin, e para o Target CPU i386, conforme figura acima.
Selecione o Botão Test, conforme figura acima.
Por fim, click no botão OK.
Agora, iremos compilar nossa aplicação, para tanto click em RUN, selecionando a opção BUILD.
Agora se olharmos a pasta do projeto, eu instalei em C:\fpcupdeluxe\fpcupdeluxe\projects\projetos\hello world
Podemos ver que foi criado um arquivo hello e tambem uma pasta hello.app.
Devemos copiar ambos.
Pronto! Segue o executável, funcionando!
Gerando binário para o Android
Agora iremos criar um procedimento para criar aplicações android.
Para testar iremos utilizar um CubieTruck com SO Android 4.
O CubieTruck permite ser usado tanto como maquina linux, como máquina Android.
Para me auxiliar, instalei o aplicativo que cria um servidor ssh.
Pronto, agora tenho comandos e ftp para lançar minha aplicação.
A ilustração acima, demonstra que posso disponibilizar arquivos para o celular.
Na ilustração acima, o console terminal, permite rodar comandos.
Podemos ver também, que a atualização do cpu ARM, com SO android foi finalizada.
Agora irei compilar meu projeto.
Agora, clicando em Test, gerando
Instalação de Pacotes Adicionais
O FPCUPdeluxe permite tambem a instalação de pacotes adicionais, tal como Zeoslib.
Apresentaremos o procedimento de instalação de um pacote.
Para tanto, click na aba Modules, selecione a aba que deseja instalar e click no botão Install module.