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
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
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")
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")
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")
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)
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")
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")