How to code this formula?
Mostrar comentarios más antiguos

Please help me to convert from HSV to RGB with this equation
8 comentarios
Walter Roberson
el 5 de Dic. de 2019
Call rgb2hsv()
Alvin Alvin
el 5 de Dic. de 2019
Walter Roberson
el 5 de Dic. de 2019
Call hsv2rgb() then.
Walter Roberson
el 5 de Dic. de 2019
Use logical indexing to code the R' G' B' in vectorized form. Or use a for loop with if and elseif
Alvin Alvin
el 5 de Dic. de 2019
Walter Roberson
el 5 de Dic. de 2019
Can't do that
Can't do what ?? Can't use hsv2rgb() ? Can't use logical indexing to code the R' G' B' in vectorized form? Can't use a for loop with if and elseif ?
Alvin Alvin
el 5 de Dic. de 2019
Walter Roberson
el 5 de Dic. de 2019
Rp = zeros(size(H));
Gp = zeros(size(H));
Bp = zeros(size(H));
for K = 1 : numel(H)
if H(K) < 60
Rp(K) = C(K);
Gp(K) = X(K);
Bp(K) = 0;
elseif H(K) < 120
Rp(K) = X(K);
Gp(K) = C(K);
Bp(K) = 0;
elseif
and so on
end
end
What prevents you from using a for loop with if and elseif ?
Respuestas (1)
Andrei Bobrov
el 5 de Dic. de 2019
function rgb = HSVtoRGB(H,S,V)
n = numel(H);
C = V.*S;
X = C .* (1 - abs(mod(H/60,2) - 1));
A = [C, X, zeros(n,1)];
i = discretize(H,0:60:360);
j = perms(1:3);
j = j([6,4,2,1,3,5],:);
r = repmat((1:n)',1,3);
rgbs = A(sub2ind([n,3],r,j(i,:)));
rgb = 255*(rgbs + V - C);
end
Categorías
Más información sobre Modify Image Colors en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

