K means is a clustering algorithm used for clustering together similar data. The kmeans algorithm is also used for image clustering and segmentation. K means is used in image segmentation for finding centroid points(most used colors in the image) and then scanning other pixels row by row. After this each pixel is added to a cluster by comparing it to its nearest centroid. This distance determines which cluster the pixel belongs in. This k means clustering algorithm is further enhanced by providing user with the capability to provide the number of clusters to be made and accuracy of image segmentation. The project comprises of an enhanced k means algorithm that accurately clusters image data into respective clusters as needed by the user.