Azzera filtri
Azzera filtri

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

1 visualizzazione (ultimi 30 giorni)
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 Commenti
Guillaume
Guillaume il 26 Set 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));

Accedi per commentare.

Risposte (1)

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

Categorie

Scopri di più su Colormaps in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by