Python R2


Mi notebook se bloquea cuando no la miro!!! OpenCV – Python

Posted in Python por Arturo Elias Antón en 10 febrero 2009
Tags: , , , , , ,

Con este pequeño script y el haarcascade: haarcascade_frontalface_alt.xml nuestra PC/notebook con gnome se bloqueara cuando no la miremos y si pasamos el ultimo parametro con “true” se activara volver a mirarla sin pedirnos ninguna contraseña.
El xml lo podran sacar del archivo zip que se puso en el post anterior “Introduccion a Python – OpenCV ”

#!/usr/bin/python

import pygame
import Image
import sys
import os
from pygame.locals import *
import opencv
from opencv import adaptors
from opencv import highgui,cv

scale = 2
def sincroImg(image):
	image_size  = cv.cvGetSize(image)
	grayscale   = cv.cvCreateImage(image_size, 8, 1)
	image_small = cv.cvCreateImage(cv.cvSize(cv.cvRound(image.width/scale),cv.cvRound(image.height/scale)), 8, 1)
	cv.cvCvtColor(image, grayscale, cv.CV_BGR2GRAY)
	cv.cvResize(grayscale,image_small,cv.CV_INTER_LINEAR)
	cv.cvEqualizeHist(grayscale, grayscale)
    	return grayscale

def dectect(img,cascade,storage):
	cv.cvClearMemStorage(storage)
	return cv.cvHaarDetectObjects(
                                   img,
                                   cascade,
                                   storage,
                                   scale,
                                   2,
                                   cv.CV_HAAR_DO_CANNY_PRUNING)

camara = highgui.cvCreateCameraCapture(0)

fps = 30
pygame.init()
ventana = pygame.display.set_mode((320,240))
pygame.display.set_caption("Lock-See")
screen = pygame.display.get_surface()

print "OpenCV version: %s (%d, %d, %d)" % (cv.CV_VERSION,
                                               cv.CV_MAJOR_VERSION,
                                               cv.CV_MINOR_VERSION,
                                               cv.CV_SUBMINOR_VERSION)

cascade_name       = sys.argv[1]
storage = cv.cvCreateMemStorage(0)
cascade = cv.cvLoadHaarClassifierCascade(cascade_name, cv.cvSize(14,14))

paramTime = 10
paramClave = "false"

if len(sys.argv) >= 3: paramTime = int(sys.argv[2])
if len(sys.argv) == 4: paramClave = sys.argv[3]

print "Lock-See v0.1"
print paramTime,",",paramClave

scale = 2
notPresent = 0
while True:
	img1 = highgui.cvQueryFrame(camara)

        # face detection
	sincroImg(img1)
        faces = dectect(img1,cascade,storage)
	if faces.total != 0:
		if (notPresent !=0) and paramClave == "true":
			 os.system("gnome-screensaver-command --deactivate")

		notPresent = 0
		for face in  faces:
			cv.cvRectangle(img1,
				cv.cvPoint( int(face.x), int(face.y)),
				cv.cvPoint(int(face.x + face.width), int(face.y + face.height)),
				cv.CV_RGB(255,0,0), 3, 8, 0)
	else:
		notPresent += 1
		if notPresent >= paramTime:
			os.system("gnome-screensaver-command --lock")

	img = adaptors.Ipl2PIL(img1).resize((320,240))
	pgimg = pygame.image.frombuffer(img.tostring(), img.size, img.mode)
    	screen.blit(pgimg, (0,0))
    	pygame.display.flip()
    	pygame.time.delay(int(1000 * 1.0/fps))

Como siempre espero que les guste y cualquier duda solo tienen que preguntarme a mi mail o consultarlo en el grupo binsd

Saludos y espero que les guste.

Antes que nada quiero decir que me parecio mas util el bloqueador por bluetooth de javier perez

Anuncios

Una respuesta to 'Mi notebook se bloquea cuando no la miro!!! OpenCV – Python'

Subscribe to comments with RSS o TrackBack to 'Mi notebook se bloquea cuando no la miro!!! OpenCV – Python'.

  1. Julian said,

    che esto esta genial!. No había mirado los links en el mail previo, la pregunta del millón (y q todavia no entiendo)es si esta libreria distingue rostros diferentes o solo se da cuenta que hay alguien. saludos!


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: