ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

rgb2hsv

RGB カラーマップを HSV カラーマップに変換

構文

H = rgb2hsv(M)
hsv_image = rgb2hsv(rgb_image)

説明

H = rgb2hsv(M) は、RGB カラーマップ M を HSV カラーマップ H に変換します。共に、カラーマップは、m 行 3 列の行列です。要素は、共に 0 から 1 の範囲です。

入力行列 M の列は、それぞれ赤、緑、青の強度を表します。出力行列 H の列は、それぞれ色相、彩度、明度を表します。

hsv_image = rgb2hsv(rgb_image) は、RGB イメージを等価の HSV イメージに変換します。rgb_image は m x n x 3 のイメージ配列で、その 3 つの面はイメージの赤、緑、青の成分を含んでいます。HSV は m x n x 3 のイメージ配列として返され、その 3 つの面はイメージの色相、彩度、明度の成分を含んでいます。

クラス サポート

入力が RGB イメージの場合、クラスは uint8uint16single または double のいずれかです。入力が single の場合、出力イメージは single です。その他すべての入力データ型の場合、出力イメージは double です。入力がカラーマップの場合、入力カラーマップと出力カラーマップは両方とも double クラスです。

アルゴリズム

以下は rgb2hsv で使用される変換式です。

v = max(max(r,g),b); 
h = zeros(size(v), 'like', r); 
s = (v - min(min(r,g),b)); 

z = ~s; 
s(z) = 1; 
k = (r == v); 
h(k) = (g(k) - b(k))./s(k); 
k = (g == v); 
h(k) = 2 + (b(k) - r(k))./s(k); 
k = (b == v); 
h(k) = 4 + (r(k) - g(k))./s(k); 
h = h/6; 
k = (h < 0); 
h(k) = h(k) + 1; 
h(z) = 0; 

tmp = s./v; 
tmp(z) = 0; 
k = (v~=0); 
s(k) = tmp(k); 
s(~v) = 0; 

R2006a より前に導入

この情報は役に立ちましたか?