OPENCV
OpenCV com Windows

Até agora, sempre que apresentei um projeto em OpenCV o fiz no linux.

Para aqueles que perderam as referencias dos meus projetos em OpenCV, segue uma lista bem resumida:

Porque fazer no Windows

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:

https://opencv.org/
Site do OpenCV

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:

https://github.com/marcelomaurin/opencvwin

Mysql PHP Programação Python
Mysql com C/Lazarus/Python/PHP/R – Parte 4

Neste penultimo artigo, mostrarei como ler JSON com mysql.

Para não me repetir, pois já apresentei isso anteriormente, no artigo abaixo:

http://maurinsoft.com.br/index.php/2019/03/09/usar-o-mysql-com-python/
Usando mysql diretamente com python.

Resolvi fazer diferente.

No artigo de PHP, mostrei um web service, que consumi com AngularJS/BootStrap:

http://maurinsoft.com.br/index.php/2022/02/04/mysql-com-c-lazarus-python-php-r-parte-3/

Agora neste artigo, vou consumir tambem o web service.

GIT do Projeto

https://github.com/marcelomaurin/PythonJS

Exemplo do Código

Client WebService

Neste exemplo, consumimos o web service, onde recebemos o JSON.

import requests
import codecs
import json

api_url = "http://maurinsoft.com.br/exemplos/phpmysql/ws/Pessoa.php"
response = requests.get(api_url)
response.headers['content-type']
#response.encoding
#response.text
#print(response.text)
#response.text.encode('utf-8-sig','ignore')
#print(response);
info = ""
if(response.text!={}):
    dados = codecs.decode(response.text.encode(),'utf-8-sig')
    js = json.loads(dados)
    print(js)
    #print(js.count())

Usando PANDAS

Neste segundo exemplo, podemos verificar uma ligeira diferença, pois estamos convertendo os dados para Pandas. ankara escort çankaya escort ankara escort çankaya escort escort ankara çankaya escort escort bayan çankaya istanbul rus escort eryaman escort escort bayan ankara ankara escort kızılay escort istanbul escort ankara escort ankara rus escort escort çankaya ankara escort bayan istanbul rus Escort atasehir Escort beylikduzu Escort Ankara Escort malatya Escort kuşadası Escort gaziantep Escort izmir Escort

from urllib.request import urlopen
import json
import pandas as pd

response = urlopen("http://maurinsoft.com.br/exemplos/phpmysql/ws/Pessoa.php")
json_data = response.read().decode('utf-8-sig', 'replace')

d = json.loads(json_data)
df = pd.json_normalize(d[0])

print(df)

Espero ter auxiliado os amigos, neste interessante artigo.

Artigos relacionados

    Dicas Sem categoria
    Windows Modo de teste
    Exemplo do windows em modo teste

    Para tirar o windows do modo de teste, realize o seguinte procedimento. ankara escort çankaya escort ankara escort çankaya escort escort ankara çankaya escort escort bayan çankaya istanbul rus escort eryaman escort escort bayan ankara ankara escort kızılay escort istanbul escort ankara escort ankara rus escort escort çankaya ankara escort bayan istanbul rus Escort atasehir Escort beylikduzu Escort Ankara Escort malatya Escort kuşadası Escort gaziantep Escort izmir Escort

    1 – Entre no CMD como modo administrador

    Digite:

    bcdedit -set TESTSIGNING OFF

    Reinicie o computador.

    Delphi Lazarus
    Instalando fpcupdeluxe Windows

    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:

    https://www.embarcados.com.br/cross-compilando-pascal-para-arm-utilizando-o-lazarus/

    Aqui irei abordar o procedimento para o windows, pois há uma pequena variação.

    Pré requisitos

    • GIT instalado
    • Git Tortoise (recomendado) porem não é requerido
    • GTK+-Bundle-3.4
    • Win64Bins.zip

    Instalação

    Primeiro baixe o projeto no repositório do git na pasta
    c:\fpcupdeluxe, o repositório segue no link abaixo:

    https://github.com/LongDirtyAnimAlf/fpcupdeluxe.git

    Em seguida, pegue a ultima versão do binário já compilado e mova para a pasta c:\fpcupdeluxe

    https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases

    Lembrando que a versão para windows 10 64bits será como demonstrado:


    Copie o binário na pasta c:\fpcupdeluxe , e execute o mesmo.

    Irá aparecer uma tela, primeiramente, voce deve selecionar o caminho
    c:\fpcupdeluxe\fpcupdeluxe, conforme figura abaixo:

    Agora selecione o stable do FPC e Lazarus, conforme figura abaixo:

    Click no botão Install/Update, conforme figura abaixo:

    Lembre-se este procedimento irá demorar muito.

    Então deixe rodando e vá fazer outra coisa, tipo escrever um tutorial 😉

    Ao final da instalação surgirá o resultado como da imagem abaixo: ankara escort çankaya escort ankara escort çankaya escort escort ankara çankaya escort escort bayan çankaya istanbul rus escort eryaman escort escort bayan ankara ankara escort kızılay escort istanbul escort ankara escort ankara rus escort escort çankaya ankara escort bayan istanbul rus Escort atasehir Escort beylikduzu Escort Ankara Escort malatya Escort kuşadası Escort gaziantep Escort izmir Escort

    Finalização do procedimento de instalação

    Rodando o Lazarus

    O Lazarus pode ser encontrado no c:\fpcupdeluxe\fpcupdeluxe, conforme figura abaixo:

    Entre na pasta lazarus, e procure o executável startlazarus.

    aplicativo startlazarus

    Segue o exemplo do Lazarus, já com aplicativo compilado.

    Lazarus com projeto compilado!


    Gerando binário para o Windows

    Agora criaremos uma aplicativo e executaremos no windows.

    Para tanto criei um projeto hello world, que disponibilizarei neste link:

    http://maurinsoft.com.br/downloads/hello%20world.rar

    Como estamos compilando em máquina nativa, não há muito a ser feito, basta compilar e rodar a aplicação.

    Para compilar, selecione RUN e dentro dele a opção Build.

    Podemos ver que ele funcionou.

    Lembre-se que a opção Default é a nativa do sistema.

    Para isso precisa ir no menu Project, selecionando a opção Project Options.

    Lá surgirá um menu, conforme o da figura abaixo:

    Selecione a opção Compiler Options, e dentro dela o item Config and Target, conforme figura acima.

    Gerando binários para Raspberry PI – Linux

    Agora irei descrever o procedimento para gerar compilação para o raspberry pi, estando no lazarus do windows.

    Este procedimento aproveita, que o lazarus tem como lema a compilação cruzada, ou como eles dizem:

    Write once! Compile Anyware!

    Para isso precisa ir no menu Project, selecionando a opção Project Options.

    Lá surgirá um menu, conforme o da figura abaixo:

    Selecione a opção Compiler Options, e dentro dela o item Config and Target, conforme figura acima.

    Selecione o processador (CPU) arm.

    Selecione o OS (Sistema Operacional) linux.

    Conforme figura abaixo:

    Click no botão Install compiler, conforme figura acima.

    O fpcupdeluxe irá providenciar a instalação do ambiente crox para esta plataforma, conforme descrito.

    Este procedimento irá demorar alguns minutos.

    Instalação/Atualização concluída com sucesso.

    Para tanto criei um projeto hello world, que disponibilizarei neste link:

    http://maurinsoft.com.br/downloads/hello%20world.rar

    Basicamente a tela dele, é como se segue.

    hello world

    Aponte o Target OS, para ser Linux, e em seguida o CPU para arm, conforme figura acima.

    Click no botão Test, para realizar teste de compatibilidade.

    No meu teste, ele encontrou os fontes tanto do X64 como do ARM, dê ignorar, e verifique se deu tudo certo.

    Na figura acima, podemos ver que ele conseguiu achar os alvos necessários.

    Click no botão OK.

    Agora vamos compilar, através do menu RUN, com o item Build.

    O resultado esperado será o apresentado acima.

    No meu caso eu salvei o projeto em:

    C:\fpcupdeluxe\fpcupdeluxe\projects\projetos\hello world

    Lá vc encontra 2 grandes arquivos:

    O primeiro hello, é o do arm, pois não eh reconhecido como executável.

    O segundo já é o compilado no windows.

    Vamos copiar o primeiro hello, e copiar para o raspberry.

    Usando o bitvise, copie o arquivo, o resultado, é como se segue:


    Agora, no terminal, execute o comando a seguir:

    chmod +777 ./hello

    Não se esqueça de ir na pasta onde copiou o aplicativo, no meu caso foi /home/mmm/Downloads.

    Agora entre no VNC, e execute o aplicativo na referida pasta.

    Para executar, dê duplo click, o resultado será conforme apresentado.

    Ao clicar no botão, surgirá a mensagem abaixo:

    Parabéns! você conseguiu compilar no raspberry!

    Gerando binário para o Linux X64

    Agora iremos preparar o ambiente para compilar nosso exemplo no Linux X64. Ou seja em um pc com linux.

    O primeiro passo conforme apresentado na imagem acima é selecionar a aba CROSS, em seguida em CPU selecionar a opção x86_64.

    Ainda na aba CROSS, selecione em OS (Sistema Operacional) o sistema operacional LINUX, conforme figura acima.

    Por fim, selecione o botão INSTALL COMPILER, conforme figura acima.

    O processo irá demorar alguns minutos, pois o sistema irá gerar o ambiente necessário para compilar em Linux.

    Para testarmos nosso binário, iremos primeiro montar uma VM (Virtual Machine) com ubuntu. No caso de nossa vm, já é 64bits.

    VM Ubuntu

    Agora identificaremos o IP para posteriormente transferir o arquivo para a maquina.

    Agora iremos entrar no bitviser e conectar para podermos jogar nosso arquivo, quando pronto.

    Pronto, agora irei aguardar até fpcupdeluxe terminar de preparar a versão de compilação cruzada linux X64.

    Pronto agora podemos comecar a compilar nosso exemplo.

    Começamos, entrando na pasta do lazarus.

    No meu caso, podemos ver que instalei em C:\fpcupdeluxe\fpcupdeluxe\lazarus.

    Agora iniciarei o lazarus, através do comando startlazarus.

    Já no lazarus aberto, iremos carregar nosso projeto:

    http://maurinsoft.com.br/downloads/hello%20world.rar

    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.

    Erroneamente marcado como x86_64

    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.

    CubieTruck é um equipamento bem versátil com 2Gb.

    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.

    maurinsoft.com.br