CS376A Digital Image Processing Skidmore College Assignment 03 Due: Part 1 due April 12 by 11:59 p.m. to meckmann@skidmore.edu ============= PART 1 1. Finish implementation of K-means clustering - to visualize your clusters, assign each class a different color and output an image - if use R, G and B only as your clustering features, then the average (mean) color of each cluster is good choice for display - if use any other features, visualize using some premade standard set of colors (have 16 prepared) and if say your K is 5, only use the first 5, if K is 16 use all 16 colors - implement k-means clustering on R, G, and B as the three features - run it on several images with different values of k e.g. k=3,4,5,6 for 3 of your own images - if image file name was image.jpg, name your output images color-3means-image.jpg color-4means-image.jpg color-5means-image.jpg color-6means-image.jpg - also do 2 features: intensity and standard deviation of intensity in a 5x5 neighborhood - run it on several images with different values of k e.g. k=3,4,5,6 for 3 of your own images - if image file name was image.jpg, name your output images intensity-and-texture-3means-image.jpg intensity-and-texture-4means-image.jpg intensity-and-texture-5means-image.jpg intensity-and-texture-6means-image.jpg Note well: make the intensity range from 0..1 (scale by dividing calculated intensity by 255 --- make sure you use double division (cast on to a double)) BUT you should also make the standard deviation be in the range 0..1 --- to do this you'll need to figure out the min and max standard deviations and then scale your range of standard deviations to the range 0..1 e.g. if you find the minimum standard deviation to be minSD and the maximum standard deviation to be maxSD, then to get any of the SDs in the 0..1 range, do: (SD-min)/(max-min) - also do 1 feature: standard deviation of intensity in a 5x5 neighborhood - run it on several images with different values of k e.g. k=3,4,5,6 for 3 of your own images - if image file name was image.jpg, name your output images texture-3means-image.jpg texture-4means-image.jpg texture-5means-image.jpg texture-6means-image.jpg - have a string as the third command line parameter with the following possible values: "color" "intensity-and-texture" "texture" use the value of that third command line parameter to determine which of the three different sets of features to use to cluster =========== Attach a zip file (please do not create a rar file) with: all the java files necessary for me to compile your program and some original images and the appropriately named resulting clustered images