I want RGB to HSV conversion. What changes are required in the following code?

1 visualización (últimos 30 días)
X = im2double(imread('path'));
R = X(:,:,1);
G= X(:,:,2);
B = X(:,:,3);
z = zeros(size(R));
Rimg = cat(3, R, z, z);
Gimg = cat(3, z, G, z);
Bimg = cat(3, z, z, B);
L256 = linspace(0,1,256).';
z256 = zeros(256,1)
mapR= [L256, z256, z256];
mapG= [z256, L256, z256];
mapB = [z256, z256, L256];
figure; image(Rimg); colormap(mapR); colorbar();
figure; image(Gimg); colormap(mapG); colorbar();
figure; image(Bimg); colormap(mapB); colorbar();
  4 comentarios
Guillaume
Guillaume el 26 de Sept. de 2018
Indeed it is very unclear what the code given has got to do with conversion to HSV which is trivially achieved with rgb2hsv.
The whole code is simply a very complicated way of achieving the same as:
X = im2double(imread('path'));
figure; imshow(X .* cat(3, 1, 0, 0));
figure; imshow(X .* cat(3, 0, 1, 0));
figure; imshow(X .* cat(3, 0, 0, 1));
Walter Roberson
Walter Roberson el 26 de Sept. de 2018
X .* cat(3, 1, 0, 0) requires R2016b or later.

Iniciar sesión para comentar.

Respuestas (1)

Image Analyst
Image Analyst el 26 de Sept. de 2018
Your code doesn't do anything useful at all. Abandon it all, except the imread() and try this:
hsvImage = rgb2hsv(X);

Categorías

Más información sobre Colormaps en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by