How to code this formula?
이전 댓글 표시

Please help me to convert from HSV to RGB with this equation
댓글 수: 8
Walter Roberson
2019년 12월 5일
Call rgb2hsv()
Alvin Alvin
2019년 12월 5일
Walter Roberson
2019년 12월 5일
Call hsv2rgb() then.
Walter Roberson
2019년 12월 5일
Use logical indexing to code the R' G' B' in vectorized form. Or use a for loop with if and elseif
Alvin Alvin
2019년 12월 5일
Walter Roberson
2019년 12월 5일
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
2019년 12월 5일
Walter Roberson
2019년 12월 5일
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 ?
답변 (1개)
Andrei Bobrov
2019년 12월 5일
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
카테고리
도움말 센터 및 File Exchange에서 Modify Image Colors에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

