def superpixel(image_pk,test_pk,grid_size,distance,sigma): image_selected = Imagen.objects.get(pk=image_pk) image_for_pil = Image.open("."+image_selected.archivo.url) maxsize = (200, 200) thumbnail = grid.thumbnail("."+image_selected.archivo.url,(200,200)) image_for_pil.thumbnail(maxsize, PIL.Image.ANTIALIAS) test = Prueba.objects.get(pk=test_pk) op = np.load(test.op_file) sp = np.load(test.sp_file) ca = np.load(test.ca_file) mean_shift_result = ms.MeanShiftResult(op,sp,ca) x_y_c = fe.cambia_formato(mean_shift_result) foreground_estimator = fe.foreground_estimation(x_y_c) classified = foreground_estimator.classify_points() print(classified) energy = eg.energy_generation(classified,np.shape(np.array(image_for_pil)),int(grid_size),nombre_salida="./imagenes/tmp/eg/transformacion_distancia_{}.png".format(image_selected.nombre),nombre_grid_interseccion_figura="grid_interseccion_figura.png",nombre_morfologia="morfologia.png") energy_map = energy.hacer_saliency_map() s = spx.superpixel(nombre_thumbnail=thumbnail,profundidad=energy_map,nombre_salida="./imagenes/tmp/spx/superpixel_{}.png".format(image_selected.nombre)) s.hacer_superpixel() fil = open(s.nombre_salida, 'rb') rd = fil.read() content_file = ContentFile(rd) content_file.name="./edited/edited.png" image_edited = Imagen(nombre=energy.nombre_salida,archivo=content_file,formato="png",editada=True) image_edited.save() test.resultado=image_edited test.save() return image_edited.archivo.url
def foreground_estimation(image_pk,test_pk,grid_size,distance,sigma): image_selected = Imagen.objects.get(pk=image_pk) image_for_pil = Image.open("."+image_selected.archivo.url) maxsize = (200, 200) image_for_pil.thumbnail(maxsize, PIL.Image.ANTIALIAS) test = Prueba.objects.get(pk=test_pk) op = np.load(test.op_file) sp = np.load(test.sp_file) ca = np.load(test.ca_file) mean_shift_result = ms.MeanShiftResult(op,sp,ca) x_y_c = fe.cambia_formato(mean_shift_result) foreground_estimator = fe.foreground_estimation(x_y_c) classified = foreground_estimator.classify_points() print(classified) morf = eg.energy_generation(classified,np.shape(np.array(image_for_pil)),int(grid_size),nombre_salida="transformacion_distancia.png",nombre_grid_interseccion_figura="grid_interseccion_figura.png",nombre_morfologia="morfologia.png") morf.interseccion_grid_figura() morf.morfologia() morf_img = Image.fromarray(morf.res,'L') morf_img.save("./imagenes/tmp/morfologia/"+morf.nombre_morfologia+"_{}".format(image_selected.nombre),'png') fil = open("./imagenes/tmp/morfologia/"+morf.nombre_morfologia+"_{}".format(image_selected.nombre), 'rb') rd = fil.read() content_file = ContentFile(rd) content_file.name="./edited/edited.png" image_edited = Imagen(nombre="./imagenes/tmp/morfologia/"+morf.nombre_morfologia+"_{}".format(image_selected.nombre),archivo=content_file,formato="png",editada=True) image_edited.save() test.resultado=image_edited test.save() return image_edited.archivo.url
#ORIGINALMENTE ERA [0.2,0.2] mean_shift_result = mean_shifter.cluster(LISTA_PUNTOS,40, kernel_bandwidth = [100,128]) # Muestra las asignaciones de cada uno de los puntos cluster_assignments = mean_shift_result.cluster_ids print(cluster_assignments) print(mean_shift_result.original_points) print("Puntos asignados: {}".format(len(cluster_assignments))) (res,colores) = grid.visualizar_clusteres(RGB,mean_shift_result) img = Image.fromarray(res,'RGB') img.save('visalizacion_puntos_aislados_clusteres.png','png') x_y_c = foreground_estimation.cambia_formato(mean_shift_result) print(x_y_c) fe_estimator = foreground_estimation.foreground_estimation(x_y_c) print(fe_estimator.predictor()) #puntos_clasificados = fe_estimator.classify_points() #fe_scores = fe_estimator.predictor() #print(fe_scores) #normalizacion= whiten(fe_scores) #normalizacion = normalizacion.reshape(-1,1) #print(normalizacion) #centroides,_ = kmeans(normalizacion,k_or_guess=2) #clases,_ = vq(fe_scores.reshape(-1,1),centroides) # #print(centroides) #print(clases)