Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpgperui <pgperui@65703dd9-322d-4ecd-a169-f49c4620ba53>2011-07-29 05:39:02 (GMT)
committer pgperui <pgperui@65703dd9-322d-4ecd-a169-f49c4620ba53>2011-07-29 05:39:02 (GMT)
commit82a05ddd010f72bd82c213139b30f44b2d36fbc7 (patch)
tree46f6cd31d0f1e344d69562b9f56b15fd3b89b427
parentfce8d063658d2c41771aadcebdab2dcdde6d5b4a (diff)
git-svn-id: svn+ssh://lulu.fing.edu.uy/ens/home01/pgperui/repoSVN@195 65703dd9-322d-4ecd-a169-f49c4620ba53
-rw-r--r--Utilidades/bin/python/CalibradorColor.py78
-rw-r--r--Utilidades/bin/python/TocarAnimalesPUI.py6
2 files changed, 56 insertions, 28 deletions
diff --git a/Utilidades/bin/python/CalibradorColor.py b/Utilidades/bin/python/CalibradorColor.py
index c84e0bd..d3badc3 100644
--- a/Utilidades/bin/python/CalibradorColor.py
+++ b/Utilidades/bin/python/CalibradorColor.py
@@ -6,7 +6,7 @@ from pygame import *
vconf = "v4l2src device=/dev/video0 ! videorate ! video/x-raw-yuv,width=320,height=240,framerate=5/1 ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink"
count = 0
config_nameCalibrador = "Data/CalibradorColor/MarkersCalibradorColor.dat"
-rangosEscalaColor = PuiModule.RangosColorApuntador
+rangosEscalaColor = PuiModule.RangosColorApuntador()
usarAlgoritmoRapido = 1
mostrarDebugAR = 0
aplicarMascara = 0
@@ -35,6 +35,7 @@ pui = None
dataImagen = None
running = True
+esperar = True
#Variables de pantalla
size = (640,480)
@@ -42,6 +43,7 @@ screen = pygame.display.set_mode(size)
surface = pygame.display.get_surface()
def initRangosColor():
+ global rangosEscalaColor
rangosEscalaColor.hmin = 1 #Teoricamente seria correcto que hmin fuera 0. Lo ponemos en 1
rangosEscalaColor.hmax = 360 #Porque los negros totales y los blancos totales son convertidos
rangosEscalaColor.smin = 0 #con H=0 y eso lleva a que se introduzca ruido en el histograma
@@ -51,13 +53,13 @@ def initRangosColor():
def desplegarRangosColor(rangos):
print '--------Rangos de Color--------\n'
- print 'Hue: ['+rangos.hmin+','+rangos.hmax+']\n'
- print 'Saturation: ['+rangos.smin+','+rangos.smax+']\n'
- print 'Brightness: ['+rangos.vmin+','+rangos.vmax+']\n'
+ print 'Hue: ['+ str(rangos.hmin)+','+str(rangos.hmax)+']\n'
+ print 'Saturation: ['+str(rangos.smin)+','+str(rangos.smax)+']\n'
+ print 'Brightness: ['+str(rangos.vmin)+','+str(rangos.vmax)+']\n'
print '--------------------------------\n'
def desplegarDataImage(imageData):
- global running,screen,frameSize,aplicar_mascara,aplicar_nueva_mascara,tipoMascara,pui,mostrarDebugAR,tomar_muestra
+ global esperar,running,screen,frameSize,aplicar_mascara,aplicar_nueva_mascara,tipoMascara,pui,mostrarDebugAR,tomar_muestra
print '14'
pg_img = pygame.image.frombuffer(imageData,frameSize, "RGB")
print '15'
@@ -68,9 +70,11 @@ def desplegarDataImage(imageData):
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
+ esperar = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
running = False
+ esperar=False
elif event.key == K_n: #nueva mascara
aplicar_nueva_mascara = 1 - aplicar_nueva_mascara
aplicar_mascara = 1
@@ -92,6 +96,14 @@ def desplegarDataImage(imageData):
elif event.key == K_d: #set debug image
mostrarDebugAR = 1 - mostrarDebugAR
pui.desplegarImagenAR(mostrarDebugAR)
+ elif event.key == K_1:
+ pui.setAchicarRadioMascaraCircular( pui.getAchicarRadioMascaraCircular()+3 )
+ aplicar_nueva_mascara=1
+ aplicar_mascara=1
+ elif event.key == K_2:
+ pui.setAchicarRadioMascaraCircular( pui.getAchicarRadioMascaraCircular()-3 )
+ aplicar_nueva_mascara=1
+ aplicar_mascara=1
elif event.key == K_RETURN:
tomar_muestra = 1
aplicar_nueva_mascara = 1 - aplicar_nueva_mascara
@@ -140,7 +152,7 @@ def calibrar():
def main():
- global pui, aplicar_mascara,aplicar_nueva_mascara,tomar_muestra,muestra,cantidad_muestras,jugar,factorProporcionMaximoH,porcentajeMinimoRuido,running
+ global pui, aplicar_mascara,aplicar_nueva_mascara,tomar_muestra,muestra,cantidad_muestras,jugar,factorProporcionMaximoH,porcentajeMinimoRuido,running,esperar
aplicar_mascara=1
aplicar_nueva_mascara=1
@@ -168,26 +180,40 @@ def main():
print '6\n'
calibrar()
else :
- print 'se tomaron todas las muestras\n se calculan los resultados....\n'
- pui.calcularResultadosCalibracionApuntador(factorProporcionMaximoH,porcentajeMinimoRuido)
- desplegarRangosColor(pui.getResultadosRangosColor())
-
- print 'Guardo resultados en el archivo Data/CalibradorColor/calibracionColorPy.con\n'
- pui.guardarSoloRangosColorApuntador("Data/CalibradorColor/calibracionColorPy.con")
- #Parametros de la funcion guardarCalibracionApuntador: nombre archivo,area minima, factor proporcion unico para todos los marcadores,erode,dilate,smooth,usar enclosing circle
- pui.guardarCalibracionApuntador("Data/CalibradorColor/calibracionApuntadorCompletaPy.con",300,1.0,1,1,1,1);
- print 'fin de la calibracion'
- surfaceMsgFinal1 = pygame.font.Font(None,25).render('Fin de la calibracion',0,(255,0,0))
- surfaceMsgFinal2 = pygame.font.Font(None,25).render('Los resultados se han guardado en los archivos:',0,(255,0,0))
- surfaceMsgFinal3 = pygame.font.Font(None,25).render('Data/CalibradorColor/calibracionColorPy.con',0,(255,0,0))
- surfaceMsgFinal4 = pygame.font.Font(None,25).render('Data/CalibradorColor/calibracionApuntadorCompletaPy.con',0,(255,0,0))
- surfaceMsgFinal5 = pygame.font.Font(None,40).render('Presione ESC para salir',0,(255,0,0))
- screen.blit(surfaceMsgFinal1,(40,320))
- screen.blit(surfaceMsgFinal2,(40,340))
- screen.blit(surfaceMsgFinal3,(40,360))
- screen.blit(surfaceMsgFinal4,(40,380))
- screen.blit(surfaceMsgFinal5,(40,410))
- pygame.display.flip()
+ running = False
+
+ if esperar:
+ print 'se tomaron todas las muestras\n se calculan los resultados....\n'
+ pui.calcularResultadosCalibracionApuntador(factorProporcionMaximoH,porcentajeMinimoRuido)
+ rangosResultado = PuiModule.RangosColorApuntador()
+ rangosResultado = pui.getResultadosRangosColor()
+
+ desplegarRangosColor(rangosResultado)
+
+ print 'Guardo resultados en el archivo Data/CalibradorColor/calibracionColorPy.con\n'
+ pui.guardarSoloRangosColorApuntador("Data/CalibradorColor/calibracionColorPy.con")
+ #Parametros de la funcion guardarCalibracionApuntador: nombre archivo,area minima, factor proporcion unico para todos los marcadores,erode,dilate,smooth,usar enclosing circle
+ pui.guardarCalibracionApuntador("Data/CalibradorColor/calibracionApuntadorCompletaPy.con",300,1.0,1,1,1,1);
+ print 'fin de la calibracion'
+ surfaceMsgFinal1 = pygame.font.Font(None,25).render('Fin de la calibracion',0,(255,0,0))
+ surfaceMsgFinal2 = pygame.font.Font(None,25).render('Los resultados se han guardado en los archivos:',0,(255,0,0))
+ surfaceMsgFinal3 = pygame.font.Font(None,25).render('Data/CalibradorColor/calibracionColorPy.con',0,(255,0,0))
+ surfaceMsgFinal4 = pygame.font.Font(None,25).render('Data/CalibradorColor/calibracionApuntadorCompletaPy.con',0,(255,0,0))
+ surfaceMsgFinal5 = pygame.font.Font(None,40).render('Presione ESC para salir',0,(255,0,0))
+ screen.blit(surfaceMsgFinal1,(40,320))
+ screen.blit(surfaceMsgFinal2,(40,340))
+ screen.blit(surfaceMsgFinal3,(40,360))
+ screen.blit(surfaceMsgFinal4,(40,380))
+ screen.blit(surfaceMsgFinal5,(40,410))
+ pygame.display.flip()
+
+ while esperar:
+ event =pygame.event.wait()
+ if event.type == pygame.QUIT:
+ esperar=False
+ elif event.type == pygame.KEYDOWN:
+ if event.key == pygame.K_ESCAPE:
+ esperar = False
if __name__ == "__main__":
pygame.init()
diff --git a/Utilidades/bin/python/TocarAnimalesPUI.py b/Utilidades/bin/python/TocarAnimalesPUI.py
index 9b25434..0cce721 100644
--- a/Utilidades/bin/python/TocarAnimalesPUI.py
+++ b/Utilidades/bin/python/TocarAnimalesPUI.py
@@ -5,13 +5,13 @@ from pygame import *
from pychecker.msgs import CATCH_BAD_EXCEPTION
#Configuracion del pipeline de Gstreamer
-vconf = "v4l2src device=/dev/video0 ! videorate ! video/x-raw-yuv,width=320,height=240,framerate=5/1 ! videoflip method=horizontal-flip ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink"
+vconf = "v4l2src device=/dev/video0 ! videorate ! video/x-raw-yuv,width=320,height=240,framerate=5/1 ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink"
#Archivo de configuracion Multi Marker de Artoolkit. Define la posicion relativa de los marcadores
config_multi_markers = "Data/TocarAnimalesPUI/MarkersTocarAnimales.dat"
#Archivo de calibracion de la camara, siempre usamos el mismo y no ha presentado problemas
cparam_name = "Data/camera_para.dat"
#Archivo de configuracion para la deteccion del apuntador. Este archivo fue generado mediante la utilidad CalibradorColor
-calibracion_apuntador = "Data/calibracionApuntadorAmarilloCompleta.con"
+calibracion_apuntador = "Data/CalibradorColor/calibracionApuntadorCompletaPy.con"
cant_historia = 4
cantElementosCargados = -1
@@ -65,6 +65,8 @@ def actualizarPantalla():
screen.blit(nombre_surface,(410,380))
pygame.display.flip()
if correspondenciaCorrecta:
+ sound = pui.getSonidoObjetoPUI(idObjetoPUIActual)
+ print "****************************************Reproduccion del sonido " + sound
pygame.mixer.music.load(pui.getSonidoObjetoPUI(idObjetoPUIActual))
pygame.mixer.music.play()