I have a code using k means
for k = 1:(length(dirlist))
img = imread([pathname, dirlist(k).name]);
flatImg = double(reshape(img,size(img,1)*size(img,2),size(img,3))); idx = kmeans(flatImg,3);
end
I have around 20 images ,I have specified k=3,so for each colour i need to specify a word such as A,B,C
please tell how toprocess
cluster_letter = char('A' + idx - 1);
i did the following
for k = 1:(length(dirlist))
img = imread([pathname, dirlist(k).name]);
flatImg = double(reshape(img,size(img,1)*size(img,2),size(img,3)));
idx = kmeans(flatImg,3);
N{k}=(reshape(idx,size(img,1),size(img,2)))
cluster_letter = char('A' + idx - 1)
Ncluster{k}=(reshape(cluster_letter,size(img,1),size(img,2)))
end
i get the answer, but in variable editor i get all values in same cell ,i need each letter in each cell
5 Comments
Direct link to this comment:
http://www.mathworks.com/matlabcentral/answers/47087#comment_96873
What "word" are you referring to in your question, that is to be assigned a different color?
Direct link to this comment:
http://www.mathworks.com/matlabcentral/answers/47087#comment_96880
words aor letters such as
A for one colour
B for another colour
C for another colour
Direct link to this comment:
http://www.mathworks.com/matlabcentral/answers/47087#comment_96882
for example the output of idx will consists of 1's,2's,3's
so want to assign A for 1
B for 2
C for 3
Direct link to this comment:
http://www.mathworks.com/matlabcentral/answers/47087#comment_96928
The output of idx is not colors, it is cluster numbers.
Direct link to this comment:
http://www.mathworks.com/matlabcentral/answers/47087#comment_96946
Why do you want to do this? Why not just turn it back into an image? What are you going to do with a character array?