def boton_hoyos(): #A grises imagen2 = cambiar_agrises(path_imagen_original) imagen = cambiar_agrises(path_imagen_original) imagen.save("paso_1.jpg") umbral_valor = 0.2 imagen = cambiar_umbral(imagen.convert("RGB"), umbral_valor) imagen.save("paso_2.jpg") pixeles_img = imagen.load() x, y = imagen.size pixeles = numpy.zeros(x*y).reshape((x, y)) for a in range(x): for b in range(y): pixeles[a, b] = pixeles_img[a, b][0] col, fil = pixeles.shape suma_filas = [] suma_col = [] dibuja = ImageDraw.Draw(imagen2) for i in range(col): suma_col.append(pixeles[i].sum()) for i in range(fil): suma_filas.append(pixeles[:, i].sum()) maxcol, mincol, prueba_col = peakdet(suma_col, .1) maxfil, minfil, prueba_fil = peakdet(suma_filas, .1) coor_filas = [] coor_col = [] for i in range(len(suma_filas)): y = i PixMax = 255*col x = (((suma_filas[i]) * col) / PixMax) #print "(%s, %s)" %(str(x), str(y)) dibuja.ellipse((x-2, y-2, x+2, y+2), fill="blue") if i in prueba_fil: coor_filas.append(y) dibuja.line((x, y, 0, y), fill="green") #dibuja.ellipse((x-4, y-4, x+4, y+4), fill="red") for i in range(len(suma_col)): x = i PixMax = 255*fil y = (((suma_col[i]) * fil) / PixMax) #print "(%s, %s)" %(str(x), str(y)) dibuja.ellipse((x-2, y-2, x+2, y+2), fill="green") if i in prueba_col: coor_col.append(x) dibuja.line((x, y, x, 0), fill="red") #dibuja.ellipse((x-4, y-4, x+4, y+4), fill="red") imagen2.save("paso_algo.jpg") if coor_col < coor_filas: tam = len(coor_filas) else: tam = len(coor_col) coor_filas = coor_filas[::-1] #coor_col = coor_col[::-1] centros = [] imagen_copia = imagen for i in range(tam): x = coor_col[i] y = coor_filas[i] print "(%s, %s)" %(str(x), str(y)) print pixeles[x, y] color = (randint(170,230), randint(0,190), 255) if pixeles[x, y] == 0.0: imagen_copia, masa, c = BFS(imagen_copia.convert("RGB"), (x, y), color) x_suma = 0 y_suma = 0 for i in range(len(masa)): x_suma = x_suma + masa[i][0] y_suma = y_suma + masa[i][1] x_centro = x_suma/len(masa) y_centro = y_suma/len(masa) centros.append((x_centro, y_centro)) #dibuja.ellipse((x-1, y-1, x+1, y+1), fill="yellow") imagen_copia.save("paso_3.jpg") label.destroy() poner_imagen(imagen2) global frame y = frame.winfo_height() imagen4 = cambiar_agrises(path_imagen_original) dibuja3 = ImageDraw.Draw(imagen4) for i in range(len(centros)): label_fig = Label(text = str(i)) label_fig.place(x = centros[i][0], y = centros[i][1] + y) #dibuja3.ellipse((centros[i][0]-2, centros[i][1]-2, centros[i][0]+2, centros[i][1]+2), fill="yellow") dibuja3.line((x, y, x, 0), fill="red") imagen4.save("paso_4.jpg")