Programador Python/Opencv

Projetos realizados

Projeto de Detecção de CFTV para identificação de pessoas.

Exemplo de detecção de face:

from __future__ import print_function

import sys
import numpy as np
import cv2 as cv
import MySQLdb
import pickle
import numpy as np
import glob
import logging
import logging.handlers
#import face_recognition

Banco=”casadb”
User=”user”
Passwrd=”senha”
Host=”192.168.1.211″

def conexao():
    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 Start_log():
        print(“Start_log\n”);
        global LOG_FILENAME
    LOG_FILENAME = ‘/var/log/motion/cvimage.log’
    logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG)

def Registra_log(info):
    logging.debug(info)

def imcrop(img, x1,y1,w,h):
        y2 = y1+h
        x2 = x1+w
        if x1 < 0 or y1 < 0 or x2 > img.shape[1] or y2 > img.shape[0]:
            img, x1, x2, y1, y2 = pad_img_to_fit_bbox(img, x1, x2, y1, y2)
        return img[y1:y2, x1:x2, :]

def pad_img_to_fit_bbox(img, x1, x2, y1, y2):
        img = np.pad(img, ((np.abs(np.minimum(0, y1)), np.maximum(y2 – img.shape[0], 0)),
                   (np.abs(np.minimum(0, x1)), np.maximum(x2 – img.shape[1], 0)), (0,0)), mode=”constant”)
        y1 += np.abs(np.minimum(0, y1))
        y2 += np.abs(np.minimum(0, y1))
        x1 += np.abs(np.minimum(0, x1))
        x2 += np.abs(np.minimum(0, x1))
        return img, x1, x2, y1, y2

def GravaReg(file,x,y,a,h):
    print(“Gravou arquiv\n”)
    con = conexao()
    cursor = con.cursor()
    sql=  “insert into eventoCam (arquivo,x,y,a,h) values (‘%s’,%d,%d,%d,%d)” %(file,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)
#con.close

def Setup():        
    print(“Iniciou setup\n”)
        #Pega o nome do arquivo a ser analisado
        global Arquivo
    Arquivo = sys.argv[1]
        print (“Arquivo definido:%s”,Arquivo)

        global face_classificador    
    face_classificador = cv.CascadeClassifier(“/projetos/python/cv/face.xml”)
        global img        
        img = cv.imread(Arquivo)    
    Start_log()

def main():
        print(“Iniciou main\n”)
    imagemCinza = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

        facesDetectadas = face_classificador.detectMultiScale(imagemCinza, scaleFactor=1.5, minSize=(100,100))

        for (x1,y1,w, h ) in facesDetectadas:
        print(“Face:”,x1,y1)
        GravaReg(Arquivo,x1,y1,w,h)

        img2 = imcrop(img,x1,y1,w,h)
        cv.imwrite(“face.png”,img2)

                print(“Gravou imagem em face.png\n”)

    cv.destroyAllWindows()
    print(“Finalizou\n”)

#Parametriza o sistema    
Setup()

#roda bloco principal

main()

Artigos em Python

Certificados

Com vários treinamentos realizados nesta linguagem.

Python

OpenCV

Reconhecimento Facial com OpenCV

Detecção de objetos com Opencv