def boton_esq():
    #Cambiamos a grises
    imagen = cambiar_agrises(path_imagen_original)
    imagen.save("paso_1.jpg")
    
    #Agregamos filtro de la mediana
    imagen_median = cambiar_promedio(imagen)
    for i in range(8):
        imagen_median = cambiar_promedio(imagen_median)
    imagen_median.save("paso_2.jpg")

    #Sacamos la diferencia
    imagen_dif = diferencia(imagen_median, imagen)
    imagen_dif.save("paso_3.jpg")

    #Ponemos un umbral y tenemos bordes
    imagen_um = cambiar_umbral(imagen_dif, 0.3) #ESTE UMBRAL CAMBIA
    imagen_um.save("paso_4.jpg")

    #Agrego Laplaciana para bordes
    umbral_valor = 0.5
    h_lap = numpy.array([[1, 1, 1], [1, -8, 1], [1, 1, 1]])
    imagen_lap, puntos = convolucion(imagen, numpy.multiply(1.0/1.0,h_lap))
    imagen_lap = cambiar_umbral(imagen_lap, 0.1)
    imagen_BFS = cambiar_umbral(imagen_lap, umbral_valor)
    imagen_BFS.save("paso_5.jpg")

    #Agregamos BFS
    imagen_BFS, colores, poligonos = aplicar_BFS(imagen_BFS)
    imagen_BFS.save("paso_6.jpg")

    esq_pix = imagen_um.load()
    dibuja = ImageDraw.Draw(imagen_lap)

    corte = []
    for poli in poligonos:
        for i in range(len(poli)):
            esq = esq_pix[poli[i][0], poli[i][1]]
            if esq[0] == 255:
                dibuja.ellipse((poli[i][0]-6,poli[i][1]-6,poli[i][0]+6,poli[i][1]+6), fill="black")
                cor = (poli[i][0], poli[i][1])
                corte.append((poli[i][0], poli[i][1]))
                break

    #Agregamos BFS
    imagen_BFS, colores, poligonos = aplicar_BFS(imagen_lap)
    imagen_BFS.save("paso_ALGO.jpg")

    
    x, y = imagen.size
    imagen_nueva = Image.new("RGB", (x, y))
    dibuja = ImageDraw.Draw(imagen_nueva)

    cont = 0
    for poli in poligonos:
        cor = (corte[cont][0], corte[cont][1])
        dibuja.ellipse((cor[0]-6,cor[1]-6,cor[0]+6,cor[1]+6), fill="red")
        for i in range(len(poli)):
            cor_ant = cor
            esq = esq_pix[poli[i][0], poli[i][1]]
            if esq[0] == 255:
                dibuja.ellipse((poli[i][0]-6,poli[i][1]-6,poli[i][0]+6,poli[i][1]+6), fill="red")
                cor = (poli[i][0], poli[i][1])
            if cor != "NULL" and cor_ant != cor and cor_ant != "NULL":
                dibuja.line((cor_ant[0], cor_ant[1], cor[0], cor[1]), fill="red")
        dibuja.line((corte[cont][0], corte[cont][1], cor[0], cor[1]), fill="red")
        cont = cont + 1

    imagen_nueva.save("paso_7.jpg")