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

 

Reconhecimento de Imagem em Python

Arquivo completo: cv

Este programa permite detectar faces em um sistema de CFTV, permitindo a o posterior reconhecimento.

Roda em linux e Windows

import sys
import numpy as np
import cv2

#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)

cv2.destroyAllWindows()
print("Finalizou")

 

Este exemplo simples é utilizado no sistema de identificação de CFTV de minha casa.

 

Python Exemplo de Arquivo

Exemplo de criação de Arquivo em Python

 

#Criando Python estrutura de Arquivos

#Estrutura de Log
#criado por Marcelo Maurin Martins

import sys

 

#Abre log
def AbreLog():
return(open(“analisa.log”,”r”))

 

def FechaLog(Log):
Log.close()

def processalinha(linha):
output = linha #por enquanto nao faz nada
print(“Linha:”,linha)
return output

def LeLog(Log):
for linha in Log.readlines():
processalinha(linha)

def CriaLog():
Log = open(“analisa.log”,”w”)
for conta in [1,2,3,4,5,6,7,8,9,10]:
Log.write(“teste\n”)
FechaLog(Log)

def main():
print(“Programa de analise de Dados”)
CriaLog()
Log = AbreLog()
LeLog(Log)
FechaLog(Log)

#inicia
main()

Exemplo de dicionário em Python

Segue exemplo de Dicionário em Python

#criado por marcelo maurin
 #14/04/2018

dic_Apps={
 1:"Arduino",
 2:"Delphi",
 3:"C##",
 4:"c++",
 5:"PYTHON"
 }

print("Imprimindo:")
 print("Dicionario:",dic_Apps)
 print("Chaves:",dic_Apps.keys())
 print("Valores:",dic_Apps.values())
 print("Todos itens:",dic_Apps.items())

for chave in dic_Apps.keys():
 print("chave:",chave)
 for valor in dic_Apps.values():
 print("Valor:",valor)
 for item in dic_Apps.items():
 print("Item:",item)

Instalando Django no Linux

Segue procedimento para instalação de Djando no Linux

Primeiramente verifique se possui o add-apt-repository , caso não possuir instale o seguinte pacote:

sudo add-apt-repository ppa:fkrull/deadsnakes

Adicione o python3.5, através do comando:

apt-get install python3.5

Em seguida, instale o virtualenv

apt-get install python-virtualenv

O próximo passo é criar uma pasta de trabalho, através do comando

mkdir <pasta>

Configure o virtualenv através do comando

virtualenv <pasta> -p python3.5

source venv/bin/activate

Instale agora o django, através do comando :

pip install django

Configure o django-admin, para a pasta que criou, através do comando:

django-admin startproject djangoecommerce .

Agora para rodar o servidor, basta digitar

./manage.py runserver 0.0.0.0:8000

 

Ajustando informações na tela com Python

from tkinter import *
class Login:
 def __init__(self,master):
 self.master = master
 self.master.title("acesso ao sistema")
 Label(self.master,text="Usuario e Senha").grid(row=1, column=1,columnspan=2, pady=4)
 Label(self.master,text="Usuario:").grid(row=2,column=1,pady=4)
 self.usuario = Entry(self.master,width=10)
 self.usuario.grid(row=2,column=2)
 Label(self.master,text="Senha:").grid(row=2,column=1,pady=4)
 self.senha = Entry(self.master,width=10, show="*")
 self.senha.grid(row=3,column=2)

root=Tk()
Login(root)
root.mainloop()

Criando Aplicação TK em Python

import tkinter as tk
class App(tk.Frame):
 def __init__(self,master):
 tk.Frame.__init__(self,master)
 self.pack()

#cria menu
 self.frame = tk.Frame(self)
 self.frame.pack()
 self.menu = tk.Menu(master)
 self.menuArquivo = tk.Menu(self.menu)
 self.menuArquivo.add_command(label="Item1",command=self.onclickItem1())
 self.menuArquivo.add_command(label="Item2")
 self.menuArquivo.add_command(label="Item3")
 self.menu.add_cascade(label="consulta",menu=self.menuArquivo)
 master.config(menu=self.menu)

#self.MontaMenu() 
 self.criarbotoes()
 self.crialabel()
 self.entradadados()
 self.BotaoSair()
 
 def onclickItem1(self):
 print("ok")
 
 def criarbotoes(self):
 self.btCriar = tk.Button(self)
 self.btCriar["text"]="Botao1"
 self.btCriar.pack(side="top")

def crialabel(self):
 self.label = tk.Label(self)
 self.label["text"]="label de dialogo"
 self.label.pack(side="top")
 
 def entradadados(self):
 self.edit = tk.Entry(self)
 self.edit.pack(side="top")

def BotaoSair(self):
 self.btSair = tk.Button(self, text="sair", fg="red", command=root.destroy)
 self.btSair.pack(side="bottom")



root = tk.Tk()
#criando a aplicação
minhaAplicacao = App(master=root)
minhaAplicacao.master.title("Exemplo de tela")
minhaAplicacao.master.maxsize(400,300)
minhaAplicacao.master.geometry("400x300")



#inicia a aplicacao
minhaAplicacao.mainloop()

 

 

Exemplo de criacao de formulario em python

Exemplo de python com interface texto

 

import tkinter as tk
class App(tk.Frame):
 def __init__(self,master=None):
 tk.Frame.__init__(self,master)
 self.pack()
 self.criarbotoes()
 self.crialabel()
 self.entradadados()
 self.BotaoSair()
 
 def criarbotoes(self):
 self.btCriar = tk.Button(self)
 self.btCriar["text"]="Botao1"
 self.btCriar.pack(side="top")

def crialabel(self):
 self.label = tk.Label(self)
 self.label["text"]="label de dialogo"
 self.label.pack(side="top")
 
 def entradadados(self):
 self.edit = tk.Entry(self)
 self.edit.pack(side="top")

def BotaoSair(self):
 self.btSair = tk.Button(self, text="sair", fg="red", command=root.destroy)
 self.btSair.pack(side="bottom")



root = tk.Tk()
#criando a aplicação
minhaAplicacao = App(master=root)
minhaAplicacao.master.title("Exemplo de tela")
minhaAplicacao.master.maxsize(400,300)
minhaAplicacao.master.geometry("400x300")



#inicia a aplicacao
minhaAplicacao.mainloop()


Exemplo de Python com Tk

Segue um exemplo de aplicação grafica utilizando TKinter.

 

from tkinter import *
class App(Frame):
 def __init__(self,master=None):
 Frame.__init__(self,master)
 self.pack()
 self.criarbotoes()
 self.crialabel()
 self.entradadados()
 
 def criarbotoes(self):
 self.botao = Button(self)
 self.botao["text"]="Botao1"
 self.botao.pack(side="top")

def crialabel(self):
 self.label = Label(self)
 self.label["text"]="label de dialogo"
 self.label.pack(side="top")
 
 def entradadados(self):
 self.edit = Entry(self)
 self.edit.pack(side="top")

#criando a aplicação
minhaAplicacao = App()
minhaAplicacao.master.title("Exemplo de tela")
minhaAplicacao.master.maxsize(400,300)
minhaAplicacao.master.geometry("400x300")



#inicia a aplicacao
minhaAplicacao.mainloop()

 

Criando aplicação grafica no Python com TKinter

Segue um exemplo de aplicação grafica utilizando TKinter.

 

from tkinter import *
class App(Frame):
 def __init__(self,master=None):
 Frame.__init__(self,master)
 self.pack()
 self.criarbotoes()
 self.crialabel()
 self.entradadados()
 
 def criarbotoes(self):
 self.botao = Button(self)
 self.botao["text"]="Botao1"
 self.botao.pack(side="top")

def crialabel(self):
 self.label = Label(self)
 self.label["text"]="label de dialogo"
 self.label.pack(side="top")
 
 def entradadados(self):
 self.edit = Entry(self)
 self.edit.pack(side="top")

#criando a aplicação
minhaAplicacao = App()
minhaAplicacao.master.title("Exemplo de tela")
minhaAplicacao.master.maxsize(400,300)
minhaAplicacao.master.geometry("400x300")



#inicia a aplicacao
minhaAplicacao.mainloop()