Derive a colour palette from an image
Show older comments
I have a question which asks to set the number of rows and columns (M and N) for the painting grid and resize an image to this required gridsize.
I used imresize like below, where B is my image.
B = imresize(B,[20,20]);
It then says use this command to derive the 8 colour palette.
[~, Palette] = kmeans(reshape(B(:),M*N,3),8,'E','s','S','U');
If i replace M and N with my grid values which are 20 and 20 i get this error, for the line above.
Error using .*
Integers can only be combined with integers of the same class, or scalar doubles.
Error in unifrnd (line 34)
r = mu + sig .* (2*rand(sizeOut)-1);
Error in kmeans (line 248)
C = unifrnd(Xmins(ones(k,1),:), Xmaxs(ones(k,1),:));
Am i going about this the right way, and if so what is the meaning of the error message?
Thanks
Answers (1)
Image Analyst
on 12 Apr 2013
0 votes
So did you try casting to double, like it hinted at, and try again?
2 Comments
Andy
on 12 Apr 2013
Image Analyst
on 12 Apr 2013
I don't have the stats toolbox so I can't replicate to help you.
Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!