Beispiel #1
0
def main(k=-1):
	if len(argv) < 2 or len(argv) > 3:
		usage()
	outFile = argv[2] if len(argv) == 3 else "output.jpg"
	CUSTOM_K = 2
	K = k if k else CUSTOM_K

	img = Image.open(argv[1]) # open input file
	imgArray = np.array(img)
	ogDim = imgArray.shape
	imgArray = imgArray.reshape((ogDim[0]*ogDim[1], 3))
	poi = kmeans(imgArray, K=K, PRINT=True)
	print(poi)
	for i in range(len(imgArray)):
		color = int(poi[1][i])
		imgArray[i] = poi[0][color]
	imgArray = imgArray.reshape((ogDim[0], ogDim[1], 3))
	img = Image.fromarray(imgArray, "RGB")
	img.save(outFile)
	return img
from B import get_error
from FileHandler import read_from_file
from Kmeans import kmeans
from Plot import plot

if __name__ == '__main__':
    dataSet = read_from_file("Dataset1.csv")
    min_iteration = 15
    k = 4
    centroids, labels = kmeans(dataSet, k, min_iteration)
    # plot(labels, dataSet, k)
    errors = get_error(dataSet, centroids, labels)
    cluster_error = sum(errors) / len(errors)
    print("for k=" + str(k) + " cluster error : " + str(cluster_error))