Example #1
0
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)
Example #2
0
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)