ホームページ > バックエンド開発 > C++ > RGB を HSV に、および HSV を 0 ~ 255 の範囲内の RGB 値に変換するにはどうすればよいですか?

RGB を HSV に、および HSV を 0 ~ 255 の範囲内の RGB 値に変換するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-10 10:20:15
オリジナル
985 人が閲覧しました

How to Convert RGB to HSV and HSV to RGB Values within a 0-255 Range?

範囲 0 ~ 255 の RGB から HSV および HSV から RGB への変換のアルゴリズム

RGB カラーを変換するための色空間変換アルゴリズムが表示されます。値を HSV に変換し、その逆も同様で、両方の色空間で 0 ~ 255 の範囲を維持します。動作方法は次のとおりです:

RGB から HSV への変換 (rgb2hsv)

RGB 値 (r、g、b) を HSV (h、s、v) に変換するには:

  1. r、g、および r の最小値と最大値を決定します。 b.
  2. 値成分 (v) を最大値として計算します。
  3. 彩度成分 (s) を (v - 最小値) と v の比率として計算します。
  4. 色相成分 (h) を決定します:

    • r が最大の場合、hは (g - b) / (v - 最小値) として計算されます。
    • g が最大の場合、h は 2.0 (b - r) / (v - 最小値) です。
    • If b は最大値、h は 4.0 (r - g) / (v - 最小値) です。
  5. h の角度を次のように変換します。
  6. h が負の場合は、360 度を加算します。

HSV から RGB への変換 (hsv2rgb)

HSV 値 (h, s, v) を変換するにはから RGB (r, g, b):

  1. の場合ゼロ、r、g、b を v に設定します。
  2. それ以外の場合は、色相角度分数 (hh) と hh の底値 (i) を計算します。
  3. 値 p=v⋅ を計算します。 (1−s)、q=v⋅(1−s⋅(1−hh))、およびt=v⋅(1−s⋅hh).
  4. i に基づいて、r、g、b に値を代入します:

    • ケース 0: r=v 、g=t、b=p
    • ケース 1: r=q、g=v、 b=p
    • ケース 2: r=p, g=v, b=t
    • ケース 3: r=p, g=q, b=v
    • ケース4: r=t、g=p、b=v
    • ケース 5: r=v、g=p、 b=q

これらの関数により、RGB 色空間と HSV 色空間間の効率的かつ正確な変換が可能になります。これは、色操作や画像処理を含むアプリケーションにとって不可欠です。

以上がRGB を HSV に、および HSV を 0 ~ 255 の範囲内の RGB 値に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート