diff options
author | pgperui <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) |
commit | 82a05ddd010f72bd82c213139b30f44b2d36fbc7 (patch) | |
tree | 46f6cd31d0f1e344d69562b9f56b15fd3b89b427 | |
parent | fce8d063658d2c41771aadcebdab2dcdde6d5b4a (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.py | 78 | ||||
-rw-r--r-- | Utilidades/bin/python/TocarAnimalesPUI.py | 6 |
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() |