Derive a colour palette from an image

3 visualizzazioni (ultimi 30 giorni)
Andy
Andy il 12 Apr 2013
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

Risposte (1)

Image Analyst
Image Analyst il 12 Apr 2013
So did you try casting to double, like it hinted at, and try again?
  2 Commenti
Andy
Andy il 12 Apr 2013
Im not sure which value it is referring to but i tried casting all of them to double and got the same error message
Image Analyst
Image Analyst il 12 Apr 2013
I don't have the stats toolbox so I can't replicate to help you.

Accedi per commentare.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by