Python
Processamento de Imagem de CFTV 2.0

Informações pertinentes ao processamento de imagem

 
import sys import numpy as np
import cv2 import
MySQLdb def conexao():
Banco="banco"
User="usuario"
Passwrd="senha"
Host="ip"
resultado = 0
try:
resultado = MySQLdb.connect(db=Banco,user=User, passwd=Passwrd, host=Host)
except:
print("Erro ao conectar no Banco de dados")
resultado = -1
return resultado

def GravaReg(arquivo,x,y,a,h):
con = conexao()
cursor = con.cursor()
sql= "insert into eventoCam (arquivo,x,y,a,h) values ('%s',%d,%d,%d,%d)" %(arquivo,x,y,a,h)
print(sql)
try:
cursor.execute(sql)
con.commit()
print("Registro Gravado")
except MySQLdb as erro: print("Erro ao Executar SQL", erro)

#Pega o nome do arquivo a ser analisado
Arquivo = sys.argv[1]

# load an color image in grayscale
img = cv2.imread(Arquivo)


print("Carregado:%s",Arquivo)
classificador = cv2.CascadeClassifier("/projetos/python/cv/face.xml")
imagemCinza = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
facesDetectadas = classificador.detectMultiScale(imagemCinza, scaleFactor=1.5, minSize=(100,100)) for (x,y,l, a ) in facesDetectadas:
print("Face:",x,y)
GravaReg(Arquivo,x,y,l,a)
cv2.destroyAllWindows()
print("Finalizou")

Arquivo de script do Motion, bash para processamento de imagem

!/bin/bash#!/bin/bash
quebrar() {
local filepath="$1" local filename=$(basename "$filepath")
local ext=$(echo "$filename"| awk -F '.' '{ if (NF==2) {print $NF} else if ( NF>2) {print $(NF-1)"."$NF} }')
local dir=$(echo "$filepath" | awk -F '/' '{ print substr($0, 0 , length($0)-length($NF)-1) }')
echo -e "$dir""\t""$filename""\t""$ext"
}
ret="$(quebrar "$1")"
echo "$diretorio: " "$(echo "$ret" | cut -f1)"
diretorio="$(echo "$ret"|cut -f1)"
filename="$(echo "$ret"| cut -f2)"
somentefilename="$(echo "$filename"| cut -d. -f1)"
extensao="$(echo "$filename"| cut -d. -f2)"
novoarquivo="$(echo "$1"| cut -d. -f1)"
novoarquivo="$(echo "$novoarquivo"".mp4")"
echo "Desmembramento do arquivo"
echo $diretorio
echo $somentefilename
echo $extensao
echo $filenameecho $novoarquivo
ffmpeg -i $1 -c:v libx264 -preset ultrafast $novoarquivo
python /projetos/python/cv/load.py $novoarquivo
rm -f $1
C/C++ IA OpenCV OPENCV pós graduação Sem categoria
OpenCV Ubuntu

Este link é uma adaptação de um artigo traduzido do Seguinte post:

Neste post, forneceremos instruções passo a passo para instalar o OpenCV 3 (C ++ e Python) no Ubuntu.

Passo1 : Atualização de Pacotes

sudo apto-get update
sudo apto-get upgrade

Passo2: Instalação bibliotecas do SO

Remova qualquer instalação anterior da biblioteca x264  
sudo apt-get remove x264 libx264-dev   Nos iremos instalar as dependências agora!  
sudo apt-get install build-essential checkinstall cmake pkg-config yasm sudo apt-get install git gfortran
sudo apt-get install libjpeg8-dev libjasper-dev libpng12-dev  
# Se você esta usando o Ubuntu 14.04
sudo apt-get install libtiff5-dev


sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt-get install libxine2-dev libv4l-dev
#sudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
sudo apt-get install libgstreamer*

sudo apt-get install qt5-default libgtk2.0-dev libtbb-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install libvorbis-dev libxvidcore-dev
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get install x264 v4l-utils  
# Dependências opcionais
sudo apt-get install libprotobuf-dev protobuf-compiler
sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen julia

Passo3: Instalação das bibliotecas do Python

sudo apt-get install python-dev pip python-pip python3-dev python3-pip  
pip install numpy
pip2 install numpy
pip3 install numpy

Nós iremos baixar os pacotes opencv e opencv_contrib de seus repositórios do GitHub.

Passo 4.1: Baixe o Opencv do Github

apt install git
git clone https://github.com/opencv/opencv.git
cd opencv
cd..

Passo 4.2: Baixe opencv_contrib do Github

git clone https://github.com/opencv/opencv_contrib.git  
cd opencv_contrib
cd..

Passo 5: Compile e instale o OpenCV com os modelos de contribuição

Passo 5.1: Gere um diretório build

cd opencv  
mkdir build
cd build

Passo 5.2: Execute o CMake

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_C_EXAMPLES=ON \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D WITH_TBB=ON \
      -D WITH_V4L=ON \
      -D WITH_QT=ON \
      -D WITH_OPENGL=ON \
      -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
      -D BUILD_EXAMPLES=ON ..

 Passo 5.3: Compile e Instale

# Encontre o numero de núcleos do seu computador
nproc

# Substitua o 4 pelo resultado obtido em nproc
make -j4

sudo make install

sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'

sudo ldconfig

 Passo 6: Teste o OpenCV3

Vamos testar um aplicativo de remoção de olhos vermelhos escrito em OpenCV para testar nossas instalações em C ++ e Python.

Faça o download do RedEyeRemover.zip e extraia-o em uma pasta. 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

Passo 6.1: Teste o código C++

Vá na pasta sample, compile e execute.

cd opencv/sample/cpp
cmake .
make
Compilação dos exemplos em C

Os binários compilados irão estar disponíveis após a compilação.

Passo 6.2: Teste o código em Python

Abra o vim, e edite o seguinte código:

vim ipython

# open ipython (execute esta linha no console) ipython 
# import cv2 and print version (run following commands in ipython) importcv2
print cv2.__version__
# Se o OpenCV3 estiver instalado corretamente,
# na linha de comando aparecerá a saída 3.3.1
# Pressione CTRL+D para sair do ipython

Para executar  o removedor de olhos vermelhos

python removeRedEyes.py

Sempre que você estiver executando scripts Python que usam o OpenCV, você deve ativar o ambiente virtual que criamos, usando o comando workon.

Registre-se e baixe o código

Tradução

Este artigo é uma adaptação a partir do artigo original, contendo várias modificações, em caso de problemas, envie-nos um email

GIT Sem categoria
GIT

GIT oque é

GIT é uma ferramenta multi plataforma de controle e versionamento de fontes de programas.

Download

Entre no site https://git-scm.com/ e baixe a versão mais nova em sua plataforma.

Instalação

Linux/Debian

Para instalar o git no linux/Debian basta dar:

 apt-get install git

Mac

Para instalar o git no mac, baixe o instalador desta plataforma e rode. Voce vai precisar autorizar em security;

No windows

Baixe a aplicação e execute o mesmo, seguindo, next , next , finish.

Configuração do GIT

Git Bash

Interface nativa do git colorida

Semelhante ao prompt do cmd, porem tem cores que mostram detalhes da interface.

Para utilizar, entre na pasta que utilizará o git, botão direito, e adicione git bash here, conforme figura acima.

Atribuindo usuário

git config --global user.name "nomeuser"

Atribuindo email

git config --global user.email "marcelomaurinmartins@gmail.com"

Vendo configurações

git config --global --list

Criando um repositório

O Repositório adiciona e controla seus fontes do projeto

cd pasta_do_rep

git init

Adicionando arquivos no git

git add nome_arquivo

ou apenas os do tipo pas

git add *.pas

ou para todos os arquivos

git add --all

Status do Repositorios

Para verificar o status do repositório local com relação ao servidor, faça:

git status

Fazendo Commit

O Commit é o ato de enviar suas atualizações para o servidor.

para tal, faça:

git commit -m "Notas de mudança"

Vendo Histórico LOG

git log

No exemplo a baixo, podemos ver as informações de cada commit realizado.Neste exemplo, cada commit gerou um hash de commit, que pode posteriormente ser utilizado para comparação.

Caso queira mais informações, use:

git log --stat

Comparar commit

Para comparar commit, realize a seguinte operação:

git diff <commit1> <commit2>

Usando o log, podemos pegar os hash destes commits.

Ficando como se segue:

Variações de comando

Voltar uma versão do git anterior

git checkout -b <hash>

Para o ultimo (master), atual!

git checkout master

para reverter apenas um arquivo

git checkout <arquivo>

para reverter todos

git reset --hard

Para limpar os arquivos não rastreados, novos

get clean -f

ou para ver a opção de menu (interativo)

get clean -i

Criando lista de tipos inválidos para git

Para criar uma lista de tipos (extensões) invalidos no git, crie um arquivo no windows .gitignore.

ou no linux .gitignore 

No arquivo, .gitignore faça uma lista, como se segue.

.java

.exe

.dll

Removendo os arquivos executáveis do rastreamento>

git rm -r –cached *.exe

Clonando Repositório

Para clonar um repositório, faça a seguinte sintaxe:

git clone <url_ou_diretorio_git>

Clonando um Repositório em um branch

Para clonar um branch especifico de um repositório, use a sintaxe a seguir:

git clone -b <branch> http://git.repositorio.com.br

Criando um novo branch

Para criar um novo repositório, basta dar o comando.

git checkout -b <branch>

Enviando dados

Comando push

O Comando push, é utilizado para subir para o servidor todos os commits dados na maquina, sua sintaxe é:

git push

PUSH de branch

git push –set-upstream origin <branch>

Meus projetos no GIT

Segue meu perfil no GIT:

https://github.com/MarceloMaurin

Peço desculpas aos colegas, a maioria dos meus projetos ainda não estão no GIT.

Estou como tantos outros, migrando meus projetos para o GIT.

Atualmente uso o source forge:

https://sourceforge.net/u/mmaurinmartins/profile

Nos próximos artigos, estarei mostrando como atualizar um repositório no servidor github.

Sem categoria
Usando o GITHUB

Estaremos apresentando aqui a segunda parte do projeto git.

 
Onde usaremos as funcionalidades diretamente no meu repositório git:

https://github.com/MarceloMaurin/srvSMS

Para tanto primeiro precisaremos baixar a versão do nosso repositório, clonando ele localmente:

git clone https://github.com/MarceloMaurin/srvSMS

Se estiver no linux, o ideal é estar como super user (root).

Agora, precisamos entrar na pasta do projeto criado, digitando:

  cd srvSMS

Em seguida um ls para listar os arquivos:

Se dermos um make compile, no nosso projeto verificaremos dois erros no arquivo srvSMS.c, conforme apresentado na figura abaixo:

Para corrigir este problema, irei realizar a seguinte atividade:

  1. Criar um branch BUG01
  2. Correção do problema
  3. Subir o Branch
  4. Atualizar a MASTER com o Branch corrigido.

Criando um branch BUG01

Para criar um branch, edite o seguinte comando:

git branch BUG01

Agora, precisamos apontar para esta branch, para tal, damos o seguinte comando:

git branch BUG01

Para confirmar que houve a alteração, vemos qual o branch ativo, através do comando:

git branch

Segue um exemplo dos comandos realizados:

Correção do problema

No nosso código, podemos inicialmente ver, que ambos os warnnings são simples “esquecimentos”:

Onde o primeiro, faltou declarar o parametro job_telefone.

Já corrigido o segundo erro, tratamos de gravar com :wq (vi)

Desta forma, temos uma versão corrigida do problema.

Para confirmar, realizamos a compilação:

Para finalizar, realizamos o commit das mudanças, dando o comando:

git commit -m "motivo do commit"

Caso, ainda não tenha definido as variaveis globais, defina antes do commit:

git config --global user.name "seu nome"

git config --global user.email "seu email"

Conforme figura abaixo, o resultado do commit:

Subir o Branch

Agora, iremos subir o código para o branch, para tal, precisamos dar o comando :

git push -u origin BUG01

Atualizar a MASTER com o Branch corrigido

Para realizar a finalização, atualizando o master com a mudança do branch, precisamos primeiro pegar a master

git checkout master

Em seguida atualizar a master com as mudanças da branch que gerei (BUG01)

git merge BUG01

e por fim, commitar as mudanças para o servidor

git push

Atualização  do GITHUB

Por vezes, precisamos atualizar uma cópia local com a ultima versão do GITHUB, para tanto, precisamos puxar as atualizações do servidor para a maquina local. 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

Para tanto, usamos o seguinte comando:

git pull

Extra Manipulação de Branch

Para manipular as branches use os seguintes comandos:

Renomear a branch atual

git branch -m <nome-branch>

Apagar uma branch do servidor github

git push origin --delete <branch>

ou apenas do local por

git branch -d BUG01

Fazendo Merge pela interface gráfica

Para usar a interface gráfica, siga os passos:

Usaremos o winmerge como modelo de merge:

Download: http://winmerge.org/?lang=pt_br

ou no repositório Source Forge:

https://sourceforge.net/projects/winmerge/

Configure a ferramenta, pelo comando:

git config --global --add merge.tool winmerge
git config --global -add mergetool.winmerge.path "C:\Program Files (x86)\WinMerge"

Para chamar o winmerge, chame o git na sintaxe:

git mergetool

Criar uma TAG

Tag é uma marcação para criação de pacotes.

Sua sintaxe:

git tag <nome da tag> [<hash do branch>]

Para listar :

git tag

Para subir ao servidor:

git push --origen <tag>

Apagar tag

git tag -d <tag>

Apagar do servidor

git push --origen --delete <tag>

Line Feed – CRLF

Para desativar a opção do ambiente criar ou não line feed no final.

git config core.autocrlf false

Atualizando credenciais no windows

Para atualizar as credenciais, basta digitar os seguintes comandos:

git config --global credential.useHttpPath true
git config --global credential.helper wincred

Desativar CRLF

Para desativar o auto crlf dos arquivos fonte, use o seguinte comando:

git config --system core.autocrlf false

Sem categoria
Lazarus no MAC

O desenvolvimento de aplicações multiplataforma nunca foi tarefa fácil.


Os obstáculos para criação de ferramentas homogêneas multiplataforma, sempre foram questão de grande comoção e tem sido pungente sua necessidade.

Até a bem pouco tempo atras,  o JAVA era uma das poucas linguagens que cumpria com certo grau de satisfação essa tarefa.

Porem, há alguns anos o Lazarus, uma IDE, baseada em Pascal Objects, tem evoluído  e hoje torna-se uma referencia para desenvolvimento multiplataforma.

Com uma interface muito próxima ao antigo Delphi, e com código nativo, os projetos em Lazarus agregam performance e estabilidade.

Porem, há ainda um longo caminho a ser vencido, no tocante a uma ferramenta  multiplataforma realmente eficiente. 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

Mas gostaria de deixar meu comentário, e quem sabe ser mais um que um deslumbre de um  futuro promissor para o Lazarus, onde este ecoará entre as ferramentas de ponta do mercado.

Vamos acompanhar sua evolução na esperança que esta promessa se cumpra.

Sem categoria
Como criar um aplicativo MAC

Em lazarus após compilar um binário no MAC é necessário criar um pacote (PKG), para tanto realize as seguintes operações:

  1. Entre no MAC OS X
  2. Selecione o PackageMaker para dar inicio a criação do pacote

Esta ferramenta(PackageMaker), permite através de uma interface gráfica, criar pacotes de instalação do seu aplicativo.

3. Crie uma pasta para seu novo instalador, conforme a figura abaixo:

Selecione a distribuição e modifique as informações sobre o pacote:

  • Título
  • User Sees
  • Install Destination
  • Certificate
  • Description

Conforme sua necessidade, na figura abaixo, estamos gerando um exemplo de projeto criado:

Agora inclua os fontes que precisa utilizar, na pasta Contents, conforme ilustração abaixo:

São informações pertinentes o Destination, que informa o local da instalação.

Agora na pasta Contents, click no botão Apply Recommendations, pronto!

Faça isso para todos os arquivos, e ao fim click em Build.

Você pode customizar também a Interface, clicando em Edit Interface, conforme figura abaixo:

Sem categoria
Registrar um domínio no raspberry

Olá meus amigos,

Neste post iremos aprender a registrar um dominio na locaweb, incluindo este em seu raspberry ou cubieboard.

Lembrem-se, para registrar um dominio, é necessário possuir um IP Fixo, ou ter pago um serviço de hospedagem, que lhe forneça um IP.

Todo processo descrito aqui, foi realmente feito para registrar este site que voces vêem.

Compra e Registro de Domínio

O primeiro passo, e talvez o mais chato $$$, é a compra do domínio.

Nele criamos um usuário e senha no localweb, e em seguida selecionamos o site que queremos criar (nome completo, exemplo: blogdomaurin.com.br).

Nesta etapa verificamos, se o nome esta disponível.

O Nome estando, podemos então comprá-lo.

Após a compra, o processo é um pouco burocrático.

O registro de nomes demora 72horas para ser prorrogado, pelas centrais de DNS. (Onde os nomes são servidos).

Porem já é possível, configurar o seu domínio.

Alteração das configurações do domínio

Agora que você já comprou o domínio, porem ainda não apontou para o IP ( maquina ) que irá hospeda-lo. Isto é justamente o que iremos fazer neste passo.

Para tanto, entre no gerenciador de Registro de Domínio, e selecione a aba REGISTRO DE DOMÍNIO.

A

Agora é necessário, entrar no domínio que deseja configurar (ADMINISTRAR), selecione administrar, e configure as informações.

A seguir um exemplo de domínio registrado:

Entradas de DNS

Adicionar Entrada

ENTRADATIPOPRIORIDADECONTEÚDO
A177.52.87.39Editar Excluir
calendarioCNAMEcalendario.locaweb.com.brEditar Excluir
ftpCNAMEmaurinsoft.com.brEditar Excluir
gerenciadorCNAMEgerenciador.locaweb.com.brEditar Excluir
ns1CNAMEns1.locaweb.com.brEditar Excluir
ns2CNAMEns2.locaweb.com.brEditar Excluir
ns3CNAMEns3.locaweb.com.brEditar Excluir
painelCNAMEpainel.locaweb.com.brEditar Excluir
relatorioCNAMErelatorio.locaweb.com.brEditar Excluir
relatoriosCNAMErelatorio.locaweb.com.brEditar Excluir
wapCNAMEmaurinsoft.com.brEditar Excluir
wwwCNAMEmaurinsoft.com.brEditar Excluir
.MX30mx.jk.locaweb.com.brEditar Excluir
.MX20mx.b.locaweb.com.brEditar Excluir
.MX10mx.a.locaweb.com.brEditar Excluir
.NSns3.locaweb.com.brEditar Excluir
.NSns1.locaweb.com.brEditar Excluir
.NSns2.locaweb.com.brEditar Excluir
.SOAns1.locaweb.com.br. postmaster.locaweb.com.br. 2013050601 3600 600 1209600 3600Editar Excluir
.TXT“v=spf1 include:_spf.locaweb.com.br ?all”Editar Excluir

Copie as informações conforme aparecem, fique atento aos detalhes.

Configurando Raspberry

Chegou a hora de configurar o raspberry.

Primeiro entre no raspberry pela console.

Em seguida entre como administrador

su

Em seguida, edite o arquivo que esta em /etc/

Edite o hosts

Incluindo o nome do seu domínio, conforme figura abaixo:

Agora entre no seguinte caminho /etc/apache2/sites-available

Edite o arquivo 000-default.conf, lembrando que o 000 (zero-zero-zero).

Inclua o seguinte script neste arquivo.

<VirtualHost *:80>
 ServerAdmin webmaster@localhost
 DocumentRoot /var/www/robotinics/html

ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/acess.log combined

ServerName maurinsoft
 ServerAlias maurinsoft.com.br
</VirtualHost>

O DocumentRoot deve conter o caminho onde é armazenado seu site.

O ServerName o Nome que registrou no Hosts

ServerAlias deve conter o url do seu domínio, desta forma , quando o DNS repassar o browser receberá este domínio, e seu Apache por sua vez pode identifica-lo, repassando para o caminho correto (DocumentRoot).

Ao fim, reboot seu raspberry, dando

reboot

en_USEnglish