def gen_random_data(gaussiennes,dimension=2,\ taille_population=10000): """ Génére des gaussiennes de dimension dimension, et de forme définies par l'argument gaussienne. :arg gaussiennes: dictionnaire des gaussiennes à générées, de la forme : {"gaussienne1":{"direction":[],centre[]}} :type gaussiennes: dictionnaire :param dimension: dimensions des observations :type dimension: int :rtype: void """ population = [] #set the nb of points per gaussian n = int(taille_population / len(gaussiennes)) #generate the gaussian compteur=-1 for name in gaussiennes: compteur+=1 for i in range(n): population.append(Observation(dimension)) for j in range(dimension): population[i+compteur*n].values[j]=random.gauss(0.,1.)\ *gaussiennes[name]["direction"][j]+gaussiennes[name]["centre"][j] #write the datas in input.csv es.write_kmeans_input(population,dimension)
def gen_picture_data(name): """ Génére les données en provenance d'une image placée dans le fichier input. :arg name: nom de l'image à analyser. :type name: String :rtype: void """ #read the image and get its size: image=mpimg.imread("./input/"+name) x=image.shape[0] y=image.shape[1] #begin a loop on each pixel of the picture population = [] nb_Observation=0 for i in range(x): for j in range(y): if image[i][j][1]>200 and (i>75 or j>50): population.append(Observation(2)) population[nb_Observation].set_values([j+0.,x-i+0.]) nb_Observation+=1 print("nb de pixels actifs : "+str(nb_Observation)) es.write_kmeans_input(population,2)