def main(nombreImagen):
	# objeto imagen
	ima = Imagen(nombreImagen)
	(im, pixeles, ancho, alto) = ima.lectura()
	# objetos datos
	#dat = Datos()
	#RANGO_BINARIZACION = dat.convolucion(argv)
	# objeto del procesamiento
	pro = Procesamiento(pixeles, ancho, alto, im)
	# tiempoFiltroInicio = time.time()
	# tiempoFiltroFinal = time.time()

	# convertimos a grises
	#imagenGris = pro.convertirGris()
	#ima.setNombreImagen("salidaGRIS.png") # nuevo nombre para guardar archivo
	#ima.guardar(imagenGris, ancho, alto) # guardamos

	# aplicar filtro
	#imagenFiltro = pro.aplicarFiltro() # (que se vea borrosa)
	#ima.setNombreImagen("salidaFILTRO.png") # nuevo nombre para guardar archivo
	#ima.guardar(imagenFiltro, ancho, alto) # guardamos

	# aplicar convolucion
	#imagenConvolucion = pro.aplicarConvolucion() # detectar bordes
	#ima.setNombreImagen("salidaCONVO.png")  # nuevo nombre para guardar archivo
	#ima.guardar(imagenConvolucion, ancho, alto) # guardamos

	# aplciar normalizacion
	#imagenNormalizada = pro.aplicarNormalizacion(imagenConvolucion)
	#ima.setNombreImagen("salidaNORMA.png")  # nuevo nombre para guardar archivo
	#ima.guardar(imagenNormalizada, ancho, alto) # guardamos	

	# aplicar binarizacion
	#(imagenBinarizada, pixelesVisitar) = pro.aplicarBinarizacion(imagenNormalizada, RANGO_BINARIZACION)
	#ima.setNombreImagen("salidaBINA.png")  # nuevo nombre para guardar archivo
	#ima.guardar(imagenBinarizada, ancho, alto) # guardamos	
	
	# buscamos objetos
	#imagenObjetos, (etiquetas) = pro.buscarObjetos(imagenBinarizada, pixelesVisitar)
	#ima.setNombreImagen("salidaOBJETOS.png")  # nuevo nombre para guardar archivo
	#ima.guardarEtiquetas(imagenObjetos, ancho, alto, etiquetas) # guardamos	

	#lineDetect = pro.detectarLineas()
	#ima.setNombreImagen("salidaLINEAS.png")  # nuevo nombre para guardar archivo
	#ima.guardar(lineDetect, ancho, alto) # guardamos

	circuloDetect = pro.detectarCirculo()
	ima.setNombreImagen("salidaCIRCULO.png")  # nuevo nombre para guardar archivo
	ima.guardar(circuloDetect, ancho, alto) # guardamos


	

	return
예제 #2
0
def main(nombreImagen):
    # objeto imagen
    ima = Imagen(nombreImagen)
    (im, pixeles, ancho, alto) = ima.lectura()
    # objetos datos
    #dat = Datos()
    #RANGO_BINARIZACION = dat.convolucion(argv)
    # objeto del procesamiento
    pro = Procesamiento(pixeles, ancho, alto, im)
    # tiempoFiltroInicio = time.time()
    # tiempoFiltroFinal = time.time()

    # convertimos a grises
    #imagenGris = pro.convertirGris()
    #ima.setNombreImagen("salidaGRIS.png") # nuevo nombre para guardar archivo
    #ima.guardar(imagenGris, ancho, alto) # guardamos

    # aplicar filtro
    #imagenFiltro = pro.aplicarFiltro() # (que se vea borrosa)
    #ima.setNombreImagen("salidaFILTRO.png") # nuevo nombre para guardar archivo
    #ima.guardar(imagenFiltro, ancho, alto) # guardamos

    # aplicar convolucion
    #imagenConvolucion = pro.aplicarConvolucion() # detectar bordes
    #ima.setNombreImagen("salidaCONVO.png")  # nuevo nombre para guardar archivo
    #ima.guardar(imagenConvolucion, ancho, alto) # guardamos

    # aplciar normalizacion
    #imagenNormalizada = pro.aplicarNormalizacion(imagenConvolucion)
    #ima.setNombreImagen("salidaNORMA.png")  # nuevo nombre para guardar archivo
    #ima.guardar(imagenNormalizada, ancho, alto) # guardamos

    # aplicar binarizacion
    #(imagenBinarizada, pixelesVisitar) = pro.aplicarBinarizacion(imagenNormalizada, RANGO_BINARIZACION)
    #ima.setNombreImagen("salidaBINA.png")  # nuevo nombre para guardar archivo
    #ima.guardar(imagenBinarizada, ancho, alto) # guardamos

    # buscamos objetos
    #imagenObjetos, (etiquetas) = pro.buscarObjetos(imagenBinarizada, pixelesVisitar)
    #ima.setNombreImagen("salidaOBJETOS.png")  # nuevo nombre para guardar archivo
    #ima.guardarEtiquetas(imagenObjetos, ancho, alto, etiquetas) # guardamos

    #lineDetect = pro.detectarLineas()
    #ima.setNombreImagen("salidaLINEAS.png")  # nuevo nombre para guardar archivo
    #ima.guardar(lineDetect, ancho, alto) # guardamos

    circuloDetect = pro.detectarCirculo()
    ima.setNombreImagen(
        "salidaCIRCULO.png")  # nuevo nombre para guardar archivo
    ima.guardar(circuloDetect, ancho, alto)  # guardamos

    return
예제 #3
0
def main(nombreImagen, RANGO):
    # -------------- SABADO -------------------- #
    pro = Procesamiento(nombreImagen)  # instanciamos
    # grises
    grises = pro.aplicarGris(abrir)
    # sumar filas de la imagen
    sumaHorizontales = pro.sumarFilas()
    # sumar columna de la imagen
    sumaVerticales = pro.sumarColumnas()
    # graficar
    pro.graficar(sumaHorizontales, sumaVerticales)
    '''
def main(nombreImagen, RANGO):
	# -------------- SABADO -------------------- # 
	pro = Procesamiento(nombreImagen) # instanciamos
	# grises
	grises = pro.aplicarGris(abrir) 
	# sumar filas de la imagen
	sumaHorizontales = pro.sumarFilas()
	# sumar columna de la imagen
	sumaVerticales = pro.sumarColumnas()
	# graficar
	pro.graficar(sumaHorizontales, sumaVerticales)





	'''
def main(nombreImagen, RANGO):
	pro = Procesamiento(nombreImagen) # instanciamos
	
	# grises
	grises = pro.aplicarGris(abrir)  
	
	# sumar filas de la imagen
	sumaHorizontales = pro.sumarFilas()
	# sumar columna de la imagen
	sumaVerticales = pro.sumarColumnas()
	# graficar
	pro.graficar(sumaHorizontales, sumaVerticales)
	# minimos locales
	lineasVerticales = pro.minimosLocales(sumaVerticales)
	lineasHorizontales = pro. minimosLocales(sumaHorizontales)
	# dibujamos la lineas de los minimos locales
	(lineasHorizontales, lineasVerticales) = pro.linasImaginarias(lineasHorizontales, lineasVerticales)
	# dibujamos los puntos en donde cruzan las lineas imaginarias
	pro.setImagen("salidaGRIS.png")
	pixelesCruz = pro.calcularCruces(lineasVerticales, lineasHorizontales)

	# filtro
	pro.setImagen(nombreImagen) # receteamos
	pro.aplicarFiltro(abrir) 
	# convolucion
	pro.setImagen("salidaFILTRO.png") # imagen base
	pro.aplicarConvolucion(abrir) 
	# normalizacion
	pro.setImagen("salidaCONVOLUCION.png") # imagen base
	pro.aplicarNormalizacion(abrir) 
	# binarizacion
	pro.setImagen("salidaNORMALIZACION.png") # imagen base
	pro.aplicarBinarizacion(abrir, RANGO) 
	# buscar objetos y centro masa
	
	pro.setImagen("salidaBINARIZADA.png") # receteamos
	agujeros = pro.buscarObjetos(abrir, pixelesCruz) # BFS

	pro.setImagen(nombreImagen)
	pro.pintarImagenOriginal(agujeros)
def main(nombreImagen, RANGO):
	# -------------- SABADO -------------------- # 
	pro = Procesamiento(nombreImagen) # instanciamos
	# grises
	grises = pro.aplicarGris(abrir) 
	# umbral
	pro.setImagen(nombreImagen) # receteamos
	pro.aplicarUmbral(abrir) 
	# filtro
	pro.setImagen(nombreImagen) # receteamos
	pro.aplicarFiltro(abrir) 
	# convolucion
	pro.setImagen("salidaFILTRO.png") # imagen base
	pro.aplicarConvolucion(abrir) 
	# normalizacion
	pro.setImagen("salidaCONVOLUCION.png") # imagen base
	pro.aplicarNormalizacion(abrir) 
	# binarizacion
	pro.setImagen("salidaNORMALIZACION.png") # imagen base
	pro.aplicarBinarizacion(abrir, RANGO) 
	# buscar objetos y centro masa
	pro.setImagen("salidaBINARIZADA.png") # receteamos
	pro.buscarObjetos(abrir) 
	
	# -------------- LINEAS --------------------- #
	# detectar lineas rectas
	lin = Lineas(nombreImagen) # instanciamos
	lin.detectarLineas(abrir)
def main(nombreImagen, RANGO):
	pro = Procesamiento(nombreImagen) # instanciamos
	
	# grises
	grises = pro.aplicarGris(abrir)  
	
	
	'''
	# sumar filas de la imagen
	sumaHorizontales = pro.sumarFilas()
	# sumar columna de la imagen
	sumaVerticales = pro.sumarColumnas()
	# graficar
	pro.graficar(sumaHorizontales, sumaVerticales)
	# minimos locales
	lineasVerticales = pro.minimosLocales(sumaVerticales)
	lineasHorizontales = pro. minimosLocales(sumaHorizontales)
	# dibujamos la lineas de los minimos locales
	(lineasHorizontales, lineasVerticales) = pro.linasImaginarias(lineasHorizontales, lineasVerticales)
	# dibujamos los puntos en donde cruzan las lineas imaginarias
	pro.setImagen("salidaGRIS.png")
	pixelesCruz = pro.calcularCruces(lineasVerticales, lineasHorizontales)
	'''

	# filtro
	pro.setImagen(nombreImagen) # receteamos
	pro.aplicarFiltro(abrir) 
	# convolucion
	pro.setImagen("salidaFILTRO.png") # imagen base
	pro.aplicarConvolucion(abrir) 
	# normalizacion
	pro.setImagen("salidaCONVOLUCION.png") # imagen base
	pro.aplicarNormalizacion(abrir) 
	# binarizacion
	pro.setImagen("salidaNORMALIZACION.png") # imagen base
	pro.aplicarBinarizacion(abrir, RANGO) 
	# buscamos todos los objetos tipo borde que 
	# cumplan con la condicion de tener un minimo de pixeles
	pro.setImagen("salidaBINARIZADA.png") # imagen base
	masasTotales = pro.buscarObjetos(abrir)
	# buscar y pintar las lineas rectas de cada masa detectada
	pro.setImagen("salidaBINARIZADA.png")
	pro.detectarLineas(abrir, masasTotales)
 def test_cadenaVacia(self):
     self.assertEquals(Procesamiento().procesar(""), [0, 0, 0, 0],
                       "Cadena vacía")
예제 #9
0
def main(nombreImagen, RANGO):
    pro = Procesamiento(nombreImagen)  # instanciamos

    # grises
    grises = pro.aplicarGris(abrir)
    '''
	# sumar filas de la imagen
	sumaHorizontales = pro.sumarFilas()
	# sumar columna de la imagen
	sumaVerticales = pro.sumarColumnas()
	# graficar
	pro.graficar(sumaHorizontales, sumaVerticales)
	# minimos locales
	lineasVerticales = pro.minimosLocales(sumaVerticales)
	lineasHorizontales = pro. minimosLocales(sumaHorizontales)
	# dibujamos la lineas de los minimos locales
	(lineasHorizontales, lineasVerticales) = pro.linasImaginarias(lineasHorizontales, lineasVerticales)
	# dibujamos los puntos en donde cruzan las lineas imaginarias
	pro.setImagen("salidaGRIS.png")
	pixelesCruz = pro.calcularCruces(lineasVerticales, lineasHorizontales)
	'''

    # filtro
    pro.setImagen(nombreImagen)  # receteamos
    pro.aplicarFiltro(abrir)
    # convolucion
    pro.setImagen("salidaFILTRO.png")  # imagen base
    pro.aplicarConvolucion(abrir)
    # normalizacion
    pro.setImagen("salidaCONVOLUCION.png")  # imagen base
    pro.aplicarNormalizacion(abrir)
    # binarizacion
    pro.setImagen("salidaNORMALIZACION.png")  # imagen base
    pro.aplicarBinarizacion(abrir, RANGO)
    # buscamos todos los objetos tipo borde que
    # cumplan con la condicion de tener un minimo de pixeles
    pro.setImagen("salidaBINARIZADA.png")  # imagen base
    masasTotales = pro.buscarObjetos(abrir)
    # buscar y pintar las lineas rectas de cada masa detectada
    pro.setImagen("salidaBINARIZADA.png")
    pro.detectarLineas(abrir, masasTotales)
예제 #10
0
def main(nombreImagen, RANGO):
    # -------------- SABADO -------------------- #
    pro = Procesamiento(nombreImagen)  # instanciamos
    # grises
    grises = pro.aplicarGris(abrir)
    # umbral
    pro.setImagen(nombreImagen)  # receteamos
    pro.aplicarUmbral(abrir)
    # filtro
    pro.setImagen(nombreImagen)  # receteamos
    pro.aplicarFiltro(abrir)
    # convolucion
    pro.setImagen("salidaFILTRO.png")  # imagen base
    pro.aplicarConvolucion(abrir)
    # normalizacion
    pro.setImagen("salidaCONVOLUCION.png")  # imagen base
    pro.aplicarNormalizacion(abrir)
    # binarizacion
    pro.setImagen("salidaNORMALIZACION.png")  # imagen base
    pro.aplicarBinarizacion(abrir, RANGO)
    # buscar objetos y centro masa
    pro.setImagen("salidaBINARIZADA.png")  # receteamos
    pro.buscarObjetos(abrir)

    # -------------- LINEAS --------------------- #
    # detectar lineas rectas
    lin = Lineas(nombreImagen)  # instanciamos
    lin.detectarLineas(abrir)
 def test_minimoNumeroDeElementosYMinimoNElementos(self):
     self.assertEquals(Procesamiento().procesar("9,7,22,44"),
                       [4, 7, 44, 20.5], "N números")
 def test_NumeroDeElementosMinimoMaximoDosNumeros(self):
     self.assertEquals(Procesamiento().procesar("3,2"), [2, 2, 3, 2.5],
                       "N números")
 def test_minimoNumeroDeElementosYMinimoUnElemento(self):
     self.assertEquals(Procesamiento().procesar("3"), [1, 3, 3, 3],
                       "Un Número")
 def test_minimoNumeroDeElementosYMinimoDosElementos(self):
     self.assertEquals(Procesamiento().procesar("2,7"), [2, 2, 7, 4.5],
                       "Dos números")
 def test_numeroDeElementosNNumeros(self):
     self.assertEquals(Procesamiento().procesar("2,3,4,5"), [4, 2, 5, 3.5],
                       "N números")
 def test_numeroDeElementosDosNumeros(self):
     print(Procesamiento().procesar("2,3"))
     self.assertEquals(Procesamiento().procesar("2,3"), [2, 2, 3, 2.5],
                       "2 números")
 def test_numeroDeElementosUnNumero(self):
     self.assertEquals(Procesamiento().procesar("2"), [1, 2, 2, 2],
                       "Un número")
예제 #18
0
def main(nombreImagen, RANGO):
	pro = Procesamiento(nombreImagen) # instanciamos
	# filtro
	pro.aplicarFiltro(abrir) 
	# convolucion
	pro.setImagen("salidaFILTRO.png") # imagen base
	pro.aplicarConvolucion(abrir) 
	# normalizacion
	pro.setImagen("salidaCONVOLUCION.png") # imagen base
	pro.aplicarNormalizacion(abrir) 
	# binarizacion
	pro.setImagen("salidaNORMALIZACION.png") # imagen base
	pro.aplicarBinarizacion(abrir, RANGO) 
	# buscar objetos tipo borde
	pro.setImagen("salidaBINARIZADA.png") # receteamos
	figuras = pro.buscarObjetosTipoBorde(abrir) # BFS
	# dibujamos la tangente de cada figura detectada
	pro.setImagen("salidaOBJETOS.png")
	puntosInterseccionMedio = pro.dibujarTangente(abrir, figuras)
	# votacion por el centro
	pro.setImagen("salidaOBJETOS.png")
	pro.votacionPixeles(abrir, puntosInterseccionMedio)
 def test_NumeroDeElementosMinimoMaximoNNumeros(self):
     self.assertEquals(Procesamiento().procesar("3,2,8,6"), [4, 2, 8, 4.75],
                       "N números")
예제 #20
0
def main(nombreImagen):
	pro = Procesamiento(nombreImagen) # instanciamos
	
	# filtro
	pro.setImagen(nombreImagen) # receteamos
	pro.aplicarFiltro(abrir) 

	# normalizacion
	pro.setImagen("salidaFILTRO.png") # imagen base
	pro.normalizar(abrir, 'sobel') # receteamos

	pro.setImagen("salidaFILTRO.png") # imagen base
	pro.normalizar(abrir, 'roberts') # receteamos
	
	pro.setImagen("salidaFILTRO.png") # imagen base
	pro.normalizar(abrir, 'prewitt') # receteamos
def main(nombreImagen, RANGO):

	pro = Procesamiento(nombreImagen)
	# filtro
	pro.aplicarFiltro(abrir) 
	# convolucion
	pro.setImagen("salidaFILTRO.png") # imagen base
	pro.aplicarConvolucion(abrir) 
	# normalizacion
	pro.setImagen("salidaCONVOLUCION.png") # imagen base
	pro.aplicarNormalizacion(abrir) 
	# binarizacion
	pro.setImagen("salidaNORMALIZACION.png") # imagen base
	pro.aplicarBinarizacion(abrir, RANGO) 
	# buscar tumores y centro masa
	pro.setImagen("salidaBINARIZADA.png") # receteamos
	pro.buscarTumores(abrir) 
예제 #22
0
def main(nombreImagen, RANGO):
	# -------------- SABADO -------------------- # 
	pro = Procesamiento(nombreImagen) # instanciamos
	# grises
	grises = pro.aplicarGris(abrir) 
	# umbral
	#pro.setImagen(nombreImagen) # receteamos
	#pro.aplicarUmbral(abrir) 
	# filtro
	pro.setImagen("salidaGRIS.png") # receteamos
	pro.aplicarFiltro(abrir) 
	# resta de filtro - grises
	pro.setImagen("salidaGRIS.png") # receteamos
	pro.calcularDiferencia(abrir, "salidaFILTRO.png") 
	# binarizacion
	pro.setImagen("salidaESQUINAS.png") # imagen base
	pro.aplicarBinarizacion(abrir, RANGO) 
	


	'''
 def test_NumeroDeElementosMinimoMaximoPromedioDosNumeros(self):
     self.assertEquals(Procesamiento().procesar("3,9"), [2, 3, 9, 6],
                       "N números")
예제 #24
0
def main(nombreImagen, RANGO):
    pro = Procesamiento(nombreImagen)  # instanciamos

    # grises
    grises = pro.aplicarGris(abrir)

    # sumar filas de la imagen
    sumaHorizontales = pro.sumarFilas()
    # sumar columna de la imagen
    sumaVerticales = pro.sumarColumnas()
    # graficar
    pro.graficar(sumaHorizontales, sumaVerticales)
    # minimos locales
    lineasVerticales = pro.minimosLocales(sumaVerticales)
    lineasHorizontales = pro.minimosLocales(sumaHorizontales)
    # dibujamos la lineas de los minimos locales
    (lineasHorizontales,
     lineasVerticales) = pro.linasImaginarias(lineasHorizontales,
                                              lineasVerticales)
    # dibujamos los puntos en donde cruzan las lineas imaginarias
    pro.setImagen("salidaGRIS.png")
    pixelesCruz = pro.calcularCruces(lineasVerticales, lineasHorizontales)

    # filtro
    pro.setImagen(nombreImagen)  # receteamos
    pro.aplicarFiltro(abrir)
    # convolucion
    pro.setImagen("salidaFILTRO.png")  # imagen base
    pro.aplicarConvolucion(abrir)
    # normalizacion
    pro.setImagen("salidaCONVOLUCION.png")  # imagen base
    pro.aplicarNormalizacion(abrir)
    # binarizacion
    pro.setImagen("salidaNORMALIZACION.png")  # imagen base
    pro.aplicarBinarizacion(abrir, RANGO)
    # buscar objetos y centro masa

    pro.setImagen("salidaBINARIZADA.png")  # receteamos
    agujeros = pro.buscarObjetos(abrir, pixelesCruz)  # BFS

    pro.setImagen(nombreImagen)
    pro.pintarImagenOriginal(agujeros)
 def test_NumeroDeElementosMinimoMaximoPromedioNNumeros(self):
     self.assertEquals(Procesamiento().procesar("3,9,10,15"),
                       [4, 3, 15, 9.25], "N números")
 def test_NumeroDeElementosMinimoMaximoPromedioUnNumero(self):
     self.assertEquals(Procesamiento().procesar("3"), [1, 3, 3, 3],
                       "N números")
예제 #27
0
def main(nombreImagen, RANGO):

    pro = Procesamiento(nombreImagen)
    # filtro
    pro.aplicarFiltro(abrir)
    # convolucion
    pro.setImagen("salidaFILTRO.png")  # imagen base
    pro.aplicarConvolucion(abrir)
    # normalizacion
    pro.setImagen("salidaCONVOLUCION.png")  # imagen base
    pro.aplicarNormalizacion(abrir)
    # binarizacion
    pro.setImagen("salidaNORMALIZACION.png")  # imagen base
    pro.aplicarBinarizacion(abrir, RANGO)
    # buscar tumores y centro masa
    pro.setImagen("salidaBINARIZADA.png")  # receteamos
    pro.buscarTumores(abrir)