Output error vector in the grayscale

3 ビュー (過去 30 日間)
Eva Comeni
Eva Comeni 2022 年 2 月 25 日
コメント済み: Eva Comeni 2022 年 2 月 27 日
I have this piece of code:
resRGB = HSVtoRGB(resHSV);
but I have this error:
Input error: please pass as input a vector variable with 3 elements with value in the range [0,1]
How do I have to improve my code?
  2 件のコメント
Voss
Voss 2022 年 2 月 25 日
I'm guessing that resHSV is not in fact "a vector variable with 3 elements with value in the range [0,1]" (or is it?), so what is resHSV?
Also, you may consider using the built-in MATLAB function hsv2rgb to convert HSV colors to RGB.
Eva Comeni
Eva Comeni 2022 年 2 月 26 日
HSVtoRGB is like to hsv2rgb and it works.
Then I have:
resH = 2 * atan2(A, B);
resS = 2 * atan2(C, D);
resV = 2 * atan2(E, F);
resHSV is resH; resS; resV. A vector with 3 elements.
If I write:
resRGB = HSVtoRGB
it works, but thi isn't the results I expect.

サインインしてコメントする。

採用された回答

Image Analyst
Image Analyst 2022 年 2 月 26 日
Why not use the built-in hsv2rgb()
resRGB = hsv2rgb(resHSV);
  5 件のコメント
Image Analyst
Image Analyst 2022 年 2 月 27 日
No those would do diffferent things and make diffferent assumptions.
resRGB = HSVtoRGB(resHSV);
assumes that HSVtoRGB is a function, and that resHSV is a 3-D array.
While
HSVtoRGB = resHSV;
would take the resHSV array and make a copy of the array in a new array called HSVtoRGB. HSV2RGB should not be an existing function. Then if you do
resRGB = HSVtoRGB;
you're essentially overwriting the original resRGB array with HSVtoRGB array, which is the same thing as overwriting resRGB array with the resHSV array, which is crazy since that array is from a different color space.
Eva Comeni
Eva Comeni 2022 年 2 月 27 日
Ok, thank you. So, how I could improve this:
resRGB = HSVtoRGB(resHSV);
?
N.B. HSVtoRGB (this works fine) is like hsv2rgb.

サインインしてコメントする。

その他の回答 (1 件)

yanqi liu
yanqi liu 2022 年 2 月 26 日
yes,sir,may be check resHSV value,such as
resHSV = [.6 1 1; .6 .7 1; .6 .5 1; .6 .3 1; .6 0 1]
resHSV = 5×3
0.6000 1.0000 1.0000 0.6000 0.7000 1.0000 0.6000 0.5000 1.0000 0.6000 0.3000 1.0000 0.6000 0 1.0000
size(resHSV)
ans = 1×2
5 3
rgb = hsv2rgb(hsv);
surf(peaks);
colormap(rgb);
colorbar
  1 件のコメント
Eva Comeni
Eva Comeni 2022 年 2 月 26 日
I have images, not graphs

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeColor and Styling についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by