Image-Compression-with-K-Means-Clustering
Files included in this repository
- MatLab-Octave/image_compression.m (Octave/MATLAB script for the Image Compression with K-means Klustering)
- data/data.mat (Example Dataset for K-means)
- data/bird small.png (Example Image)
- MatLab-Octave/displayData.m (Displays 2D data stored in a matrix)
- MatLab-Octave/drawLine.m (Draws a line over an exsiting figure)
- MatLab-Octave/plotDataPoints.m (Initialization for K-means centroids)
- MatLab-Octave/plotProgresskMeans.m (Plots each step of K-means as it proceeds)
- MatLab-Octave/runkMeans.m (Runs the K-means algorithm)
- MatLab-Octave/findClosestCentroids.m (Find closest centroids)
- MatLab-Octave/computeCentroids.m (Compute centroid means)
- MatLab-Octave/kMeansInitCentroids.m (Initialization for K-means centroids)
In this project, I implement the K-means algorithm and use it for image compression. I first started on an example 2D dataset (data.mat) to helped me gain an intuition of how the K-means algorithm works. After that, I used the K-means algorithm for image compression by reducing the number of colors that occur in an image to only those that are most common in that image.