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))