2025.08.24

HSV色空間について

HSVとは

HSVは、色を色相(Hue)と彩度(Saturation)と明度(Value)の3つの要素で表現したものです。

これは、人間の感覚に近い要素で色を表現するために、人が色を表現するニュアンスを定量化したものです。例えば、HSVで「明るい淡いピンク」を表現するには、色相を「ピンク」、彩度を「淡い」、明度を「明るい」にします。

一般的に、RGBの値で色を指定しますが、それらの組み合わせで色調を調整することは難しいです。HSVを使うと、色調の調整が容易に行えます。

そのため、色の調整はRGBHSVに変換した値で色調を調整し、調整後のHSVRGBに戻す手法が用いられます.

色相(Hue)

色相は、色合いの基本的な種別のことです。

0から360°で指定します。アプリケーション/メソッドによって、角度の範囲0から360°が、0~100%や0.0~1.0に正規化されることもあります。

下の図は、代表的な色相環の1つで、0°が「赤」、60°が「黄色」、120°が「緑」、180°が「シアン(水色)」、240°が「青」、300°が「マゼンタ(紫)」を配置しています。

色相環

白、グレー(灰色)、黒には色相はなく、無彩色と呼ばれます。

彩度(Saturation,Chroma)

彩度は、色の鮮やかさの度合いです。飽和度ともいいます。

0~100%または0.0~1.0で指定します。この値が大きいほど鮮やかな色になり、値が小さいほどくすんだ色になります。白、グレー(灰色)、黒の彩度は0です。

彩度

明度(Value,Brightness)

明度は、色の明るさの度合いです。輝度ともいいます。

0~100%または0.0~1.0で指定します。この値が大きいほど明るく、この値が小さいほど色は暗くなります。白の明度は高く、黒は明度が低いです。

明度

HSVとHSBの違い

HSVHSBは、基本的には同じです。

HSBは、色を色相(Hue)と彩度(Saturation)と明度(Brightness)の3つの要素で表現したものです。

HSVとの違いは、明度を表す英語「Value」か「Brightness」の違いだけです。

RGBからHSV(HSB)へ変換

ここでは、RGBの値をHSVに変換する方法を説明します。

準備

色相H、彩度S、明度Vを計算する準備として、RGBの値の最小を0.0、最大を1.0にします。

一般的にRGBの値は0~255で指定されることが多いので、255で割ることで0.0~1.0の範囲に収めます。

R、G、Bの値が0~255の場合
	R = R ÷ 255.0
	G = G ÷ 255.0
	B = B ÷ 255.0

次に、RGB最小値CMINと最大値CMAXを求めます。

R、G、Bの最小値CMINを求める
R、G、Bの最大値CMAXを求める

色相(Hue)の計算

RGBの値とCMINとCMAXを使って色相Hを計算します。

計算方法は以下のとおりです。

RとGとBが同じ値の場合
	H = 0

R=CMAXの場合
	色相 H = 60 × ( ( G - B ) ÷ ( CMAX - CMIN ) )

G=CMAXの場合
	色相 H = 60 × ( ( B - R ) ÷ ( CMAX - CMIN ) ) + 120

B=CMAXの場合
	色相 H = 60 × ( ( R - G ) ÷ ( CMAX - CMIN ) ) + 240

計算したHの値がマイナスの場合、Hの360を足してプラスの値にします。

計算された色相Hの値の範囲は0~360になります。

彩度(Saturation)の計算

CMINとCMAXで彩度Sを計算します。

計算方法は以下のとおりです。

CMAX=0の場合
	S = 0

CMAXが0でない場合
	S = ( CMAX - CMIN ) ÷ CMAX

計算された彩度Sの値の範囲は0.0~1.0になります。また、この値に100を掛ければ0~100%の範囲になります。

明度(Value)の計算

CMAXで明度Vを計算します。

計算方法は以下のとおりです。

	V = CMAX

計算された明度Vの値の範囲は0.0~1.0になります。また、この値に100を掛ければ0~100%の範囲になります。

HSV(HSB)からRGBへ変換

ここでは、HSVの値をRGBに変換する方法を説明します。

準備

RGBの値を計算する準備として、彩度S、明度Vから最小値CMINと最大値CMAXを求めます。

計算方法は以下のとおりです。

CMAX = V × 255.0
CMIN = ( 1 - S ) × CMAX × 255.0

計算されたCMINとCMAXの値の範囲は0.0~255.0になります。

RGBの計算

CMINとCMAXでRGBを計算します。

計算方法は以下のとおりです。

Hが0~60の場合
	R = CMAX
	G = ( H ÷ 60 ) × ( CMAX - CMIN ) + CMIN
	B = CMIN

Hが60~120の場合
	R = ( ( 120 - H ) ÷ 60 ) × ( CMAX - CMIN ) + CMIN
	G = CMAX
	B = CMIN

Hが120~180の場合
	R = CMIN
	G = CMAX
	B = ( ( H - 120 ) ÷ 60 ) × ( CMAX - CMIN ) + CMIN

Hが180~240の場合
	R = CMIN
	G = ( ( 240 - H ) ÷ 60 ) × ( CMAX - CMIN ) + CMIN
	B = CMAX

Hが240~300の場合
	R = ( ( H - 240 ) ÷ 60 ) × ( CMAX - CMIN ) + CMIN
	G = CMIN
	B = CMAX

Hが300~360の場合
	R = CMAX
	G = CMIN
	B = ( ( 360 - H ) ÷ 60 ) × ( CMAX - CMIN ) + CMIN

計算されたRGB値の範囲は0.0~255.0になります。

まとめ

用語
色相(Hue)
意味
色合いの基本的な種別のことです。0~360°の角度で色を指定します。
用語
彩度(Saturation,Chroma)
意味
色の鮮やかさの度合いです。0~100%または0.0~1.0で指定します。
用語
明度(Value,Brightness)
意味
色の明るさの度合いです。0~100%または0.0~1.0で指定します。

HSVに関するコンテンツ

HSV」に関係があるコンテンツをまとめています。

関連コンテンツ

Javaのプログラムを作ってみませんか?プログラミングに必要なものの用意から実行までを説明しています。

2020.03.23

Javaプログラムを作るための環境構築の仕方を解説しています

2024.09.17

計算の仕方、変数の利用、繰り返し処理、分岐処理、文字列など、Javaプログラムの基本について説明しています

2020.03.23

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

いろいろなJavaのソースコードで、日付と時間を取り扱う方法を解説します

2022.12.19

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

プログラミングに関係がある情報を紹介しています。色情報の考え方、文字コード、2進数、画像フォーマットなどについて解説しています

2023.05.27

プログラミング、ITに関する用語をまとめています。

2022.10.17

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

レベルごとに分けられた英単語と日本語の意味の一覧表、英語を見て日本語を当てるクイズ、日本語を見て英語を当てるクイズなどを掲載しています

2025.04.26

PCやスマートフォンのディスプレイに表示されている色、プリンターで印刷される色の仕組みについて解説しています。

2020.03.23

メソッドの定義方法を詳しく解説しています。Javaのサンプルソースコードを使った説明もあります。

2020.03.23

国際単位系における角度の単位のラジアンについて説明しています。興味のある方は、記事をご覧ください。

2016.01.26

2つの値のうち、小さい方の値と、大きい方の値を取得する方法。

2020.03.23

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

広告