Undefined function or variable
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
hi i am trying to make my own rgb-to-hsv function. this is my code.
R=I(:,:,1);
G=I(:,:,2);
B=I(:,:,3);
hue_one = mod((((G-B).*60)./(max(I,[],3)-min(I,[],3))),360);
hue_two = (((B - R).*60)./(max(I,[],3)-min(I,[],3))) + 120;
hue_three = (((R - G).*60)./(max(I,[],3)-min(I,[],3))) + 240;
if (R == G) & (R == B)
H = 0;
elseif (R >= G) & (R >= B)
H = hue_one;
elseif (G >= R) & (G >= B)
H = hue_two;
elseif (B >= R) & (B >= G)
H = hue_three;
end
V = max(I,[],3);
if V == 0
S = 0;
else
S = (max(I,[],3)-min(I,[],3))./max(I,[],3);
end
HSV(:,:,1) = H;
HSV(:,:,2) = S;
HSV(:,:,3) = V;
imshow(HSV)
values of S and V are loaded in the workspace without errors while the H returns an error.
Undefined function or variable 'H'.
Error in convertRGB (line 29)
HSV(:,:,1) = H;
i tried running my code line by line. after the if/elseif statements, there was no generated value of H. the variables hue_one, hue_two and hue_three also returned a matrix and can be found on the workspace pane. WHAT COULD HAVE BEEN THE PROBLEM OF THIS? THANK YOU.
0 Kommentare
Antworten (2)
Kan-Hua
am 7 Dez. 2013
I would suggest you add a "else" statement in your first "if" block. It may be that your RGB components of the image you loaded does not match any of the if-condiations in your block, and thus your H is not assigned to any value.
For example:
if (R == G) & (R == B)
H = 0;
elseif (R >= G) & (R >= B)
H = hue_one;
elseif (G >= R) & (G >= B)
H = hue_two;
elseif (B >= R) & (B >= G)
H = hue_three;
else
H=0; %or whatever
end
Hope this helps. :)
0 Kommentare
Wayne King
am 7 Dez. 2013
What do you expect these comparisons to yield:
if (R == G) & (R == B)
H = 0;
elseif (R >= G) & (R >= B)
H = hue_one;
elseif (G >= R) & (G >= B)
H = hue_two;
elseif (B >= R) & (B >= G)
H = hue_three;
end
If these are false for any element of these matrices (very, very likely), then H is not assigned anything.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Computer Vision with Simulink finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!