Derive a colour palette from an image

2 visualizaciones (últimos 30 días)
Andy
Andy el 12 de Abr. de 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

Respuestas (1)

Image Analyst
Image Analyst el 12 de Abr. de 2013
So did you try casting to double, like it hinted at, and try again?
  2 comentarios
Andy
Andy el 12 de Abr. de 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 el 12 de Abr. de 2013
I don't have the stats toolbox so I can't replicate to help you.

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by