
RGBからHSLのSを求めたいのですが、(MAX-MIN)/(1-|MAX+MIN-1|)部分が良く分かりません。
https://ja.wikipedia.org/wiki/HLS%E8%89%B2%E7%A9 …
例えば、下記で、89.3はどうやって導き出すのでしょうか?
・RGB Decimal 12, 213, 101
・HSL 146.6°, 89.3, 44.1
MAX-MIN
・213-12=201
MAX+MIN-1
・213+12-1=224
1-|MAX+MIN-1|
・-223
(MAX-MIN)/(1-|MAX+MIN-1|)
・201/-223=-0.90
No.1ベストアンサー
- 回答日時:
Wikipediaのは 0≦ R,G,B,S,L ≦1.0 (つまり0〜100%) のときの式では?
0〜255というのは、0〜100%の実数をコンピュータで扱うのに便利な8bit整数に変換したもので、
理論的な話をするなら、0〜100%の実数のままで扱うことが多いです。
・RGB 12/255, 213/255, 101/255
・HSL 146.6°, 89.3%, 44.1%
S=(MAX-MIN)/(1-|MAX+MIN-1|)
=(213/255-12/255)/(1-|213/255+12/255-1|)
=0.893...
=89.3%
L=(MAX+MIN)/2
= ((213/255)+(12/255))÷2
= 0.441..
=44.1%
※ 0≦ dR,dG,dB ≦ m のとき、dR,dG,dBの最大値をdMAX,最小値をdMINとすると
R=dR/m
G=dG/m
B=dB/m
MAX=dMAX/m
MIN=dMIN/m
となります。
Hの式では分子と分母のmが約分されるので、 dX のまま計算しても同じ値が出ます
S=(MAX-MIN)/(1-|MAX+MIN-1|)
=(dMAX/m-dMIN/m)/(1-|dMAX/m+dMIN/m-1|)
=(dMAX-dMIN)/(m-|dMAX+dMIN-m|)
L=(MAX+MIN)/2
=(dMAX+dMIN/m)/2
=(dMAX+dMIN)/2m
精度やパフォーマンスを考えて、プログラムではこちらの式で記述されていることがあります。
・回答ありがとうございました
>精度やパフォーマンスを考えて、プログラムではこちらの式で記述されていることがあります
・大変参考になりました

No.2
- 回答日時:
Sを0~100で表す方式と0~255で表す方式があり、この例では0~100で表す方式の様。
彩度はRGBの3値が同じ状態を0%とし、そこから彩度上昇にあわせて均等に広がっていって、RGBのどれかが0もしくは255に到達した段階で100%となる。
0%と100%が分かれば、あとは現在の値が変動幅のうちの何%になるのかを調べれば彩度が求まる。
彩度0%のときのRGB値は、R・G・Bのうち最も大きな値をMAX、最も小さな値をMINとして (MAX + MIN) ÷ 2つまり灰色。
これをCNTとする。
上記の式で求められた値から彩度上昇にあわせて最小値・最大値が等速で広がっていき、最小値が0、もしくは最大値が255に到達した段階で彩度100%。この変動幅は(MAX + MIN) ÷ 2になる。
この変動幅に対して現在の値の比率が解れば答え。途中式を省略すると
比率= (CNT - MIN)/ 変動幅= (MAX - MIN) / (MAX + MIN)
RBG=(12,213,101)だからMIN=12,MAX=213を代入
比率=(213-12)/(213+12)=0.8933333・・・・
Sを0~100で表す絶対値では0.8933333・・・・×100=89.3
・回答ありがとうございました
> (MAX + MIN) ÷ 2つまり灰色。これをCNTとする
・そういう意味なんですね
>変動幅に対して現在の値の比率が解れば答え
・大変参考になりました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
Excel 数値の前の「 ' 」を一括...
-
病院側から早く来てくださいと...
-
VLOOKUP関数を使用時、検索する...
-
小数点以下を繰り上げたものを...
-
リンク先のファイルを開かなく...
-
エクセルで空白セルを含む列の...
-
値が入っているときだけ計算結...
-
勃起する時って痛いんですか? ...
-
MIN関数で空白セルを無視したい...
-
彼女のことが好きすぎて彼女の...
-
2つの数値のうち、数値が小さい...
-
レインボーシックスシージをし...
-
エクセルのラベルの値(文字列...
-
腕を見たら黄色くなってる部分...
-
エクセルで数式の答えを数値と...
-
検便を取ったのですが、棒から...
-
値が入っている一番右のセル位...
-
増減表のプラスマイナスの符号...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
値が入っているときだけ計算結...
-
彼女のことが好きすぎて彼女の...
-
尿検査前日に自慰行為した時の...
-
VLOOKUP関数を使用時、検索する...
-
Excel 数値の前の「 ' 」を一括...
-
精液の落とし方を教えてください
-
【Excelで「正弦波」のグラフを...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
精子に血が・・・
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
-
EXCELで条件付き書式で空白セル...
-
イタリアから帰国する際、肉製...
-
excelでsin二乗のやり方を教え...
-
腕を見たら黄色くなってる部分...
-
病院側から早く来てくださいと...
-
ワードのページ番号をもっと下...
おすすめ情報