27

HSL は人間の知覚を考慮しているため、HSI や HSV よりも優れています。一部の画像処理アルゴリズムでは、これらの色空間のいずれかを使用できると言われていますが、どちらを選択すればよいかわかりません。つまり、アルゴリズムは、色相と彩度のチャンネルを提供することを気にするだけで、使用する色空間を選択できます

4

6 に答える 6

32

どちらが最適かは、使用目的によって大きく異なります。しかし、私の経験では、HSL (HLS) は明るさと彩度の間に残念な相互作用があります。

画像の明るさを 2 だけ減らす例を次に示します。一番左の画像が元の画像です。次は、RGB、HLS、および HSV を使用した結果です。

RGB、HLS、HSV比較

HLS の蝶の縁の周りの過度に明るく飽和したスポット、特に下部の赤いスポットに注目してください。これが私が言及していた飽和問題です。

この例は、変換にcolorsys モジュールを使用して Python で作成されました。

于 2012-07-09T20:33:04.253 に答える
24

まだ受け入れられた回答がなく、これを完全に理解するためにさらに調査する必要があったため、2 セントを追加します。

他の人が言ったように、HSL と HSV のどちらが優れているかについての答えは、何をモデル化して操作しようとしているかによって異なります。

tl;dr - マシン ビジョンでは、HSV は HSLよりも「優れている」だけです(注意事項があります。以下をお読みください)。"Lab" やその他の正式なカラー モデルははるかに正確であり (ただし、計算コストが高くなります)、より深刻な作業に使用する必要があります。HSLは、「ペイント」アプリケーションや、人間が「設定」、「入力」、または色の値の理解/意味を理解する必要があるその他のアプリケーションに完全に適しています。

詳細については、以下をお読みください:




色がどのように生成されるかをモデル化しようとしている場合、最も直感的なモデルは HSL です。これは、絵の具を混ぜて色を作成する方法にほぼ直接対応するためです。たとえば、「濃い」黄色を作成するには、ベースの黄色の絵の具に少し黒を混ぜます。黄色の明るい色合いを作成するには、白を少し混ぜます。

HSL の「L」スペクトルの 50 から 0 の間の値は、「黒」をどれだけ混合する必要があるかを表します (L が 50 から 0 に減少すると、黒は 0 から 100% に増加します)。

50 から 100 の間の値は、どれだけの「白」を混合する必要があるかを示します (L が 50 から 100% に増加すると、白は 0 から 100% に変化します)。

50% の「L」は、白や黒からの「汚染」のない「最も純粋な」形の色を提供します。


以下のリンクからの洞察:
1. http://forums.getpaint.net/index.php?/topic/22745-hsl-instead-of-hsv/ そこの最後の投稿。
2. http://en.wikipedia.org/wiki/HSL_and_HSV HSL のカラー スペース シリンダーを調べます。これにより、私が話した分布の種類が非常に明確になります。

さらに、塗料を扱ったことがある場合は、上記の説明が (うまくいけば) 理にかなっています。:)


したがって、HSL は、色を「生成」する方法を理解するための非常に直感的な方法です。つまり、ペイント アプリケーションや、「シェード」/「トーン」の用語で考えることに慣れている視聴者を対象とするその他のアプリケーションの優れたモデルです。色のために。




さて、HSV。

HSV を理解するために私が考案した理論に基づいた空間に入り、他の情報源によって検証または裏付けられていないため、これは危険な領域です。

私の見解では、HSV の「V」は、オブジェクトに照射される光の量に対応します。つまり、光がゼロの場合、オブジェクトは完全に暗くなり、光が 100% の場合、オブジェクトはすべて白になるという仮定があります。

したがって、このリンゴの画像では、光源に直接面しているポイントはすべて白であり、100% で「V」を持っている可能性が最も高いのに対し、完全に影にあり、光に触れていない下部のポイントは、値「0」。(これらの値はチェックしていません。説明に役立つと思っただけです)。

したがって、HSV はオブジェクトがどのように照らされるかをモデル化しているように見えます (したがって、マシン ビジョン アプリケーションでスペキュラ ハイライトまたはシャドウに対して実行する必要がある可能性のある補正を説明します)。HSL よりも優れています。




しかし、私がリンクしたウィキペディアの記事の「短所」セクションの例から明らかなように、これらの方法はどちらも完璧ではありません。「ラボ」およびその他のより正式な (そして計算コストが高い) カラー モデルは、はるかに優れた機能を果たします。

PS:これが誰かに役立つことを願っています。

于 2013-06-27T18:11:08.400 に答える
10

利点があり、人間の知覚を考慮に入れている唯一の色空間はLABです。その中のユークリッド メトリックが人間の色の区別と相関しているという意味です。

ウィキペディアから直接取得:

RGB や CMYK カラー モデルとは異なり、Lab カラーは人間の視覚に近似するように設計されています。知覚の均一性を目指しており、その L 成分は人間の明るさの知覚と密接に一致しています。

これが、多くのコンピューター ビジョン アルゴリズムが LAB 空間を利用している理由です。

HSVHSBおよびHSIこのプロパティを持っていません。したがって、答えは「いいえ」であり、人間の知覚の意味でHSL「優れている」わけではありません。HSIHSV

人間の知覚に近づけたい場合は、LAB色空間を試してください。

于 2012-07-09T14:22:19.993 に答える
7

あるものは他のものよりも優れているとは言えません。それぞれが別の数学的な変換にすぎません。表現が異なると、希望する効果のために画像を操作するのが少し簡単になります。人によって画像の認識は少し異なります。HSI または HSV を使用すると、出力画像にわずかな違いが生じる場合があります。

システムに対して (つまり、ピクセル配列を使用して) 考慮したときの RGB でさえ、人間の知覚を考慮に入れます。イメージャ (ベイヤー オーバーレイを使用) が写真を撮る場合、赤と青の 1 ピクセルごとに 2 つの緑のピクセルがあります。モニターは引き続き RGB で出力します (ほとんどの場合、赤と青のそれぞれに 1 つの緑のピクセルしかありません)。シャープ製の新しい TV モニターの出力ピクセルが黄色になりました。彼らがこれを行った理由は、実際の周波数スペクトルに黄色のバンドがあるためです。そのため、色をより正確に表現するために、黄色のバンド (またはピクセル) を追加しました。

これらはすべて、スペクトル内の他のどの色よりも緑に対して高い感度を持つ人間の目に基づいています。

どのようなスケールを使用しても、画像は RGB に変換されて画面に表示されます。

http://hyperphysics.phy-astr.gsu.edu/hbase/vision/colcon.html

http://www.physicsclassroom.com/class/light/u12l2b.cfm

要するに、表現が違うだけで、どちらが優れているとは思いません。

http://en.wikipedia.org/wiki/Color

于 2012-07-09T14:17:53.797 に答える
6

実際、HSV では、彩度は色の純度であり、値は全体的な明るさではなく、その色の強度であることを理解している限り、HSV は人間の視覚をよりよく説明していると主張する必要があります。たとえば、この画像を見てください...
スペクトラム

HSL 彩度 (左) と HSL 輝度 (右) のマッピングを次に示し ます。最上部の白に到達して突然低下するまで、彩度は 100% であることに注意してください。元の画像を見ると、このマッピングは認識されません。同じことが輝度マッピングにも当てはまります。より明確なグラデーションですが、視覚的には漠然としか一致しません。下のHSV 彩度 (左) と HSV 値 (右) と比較してください。 ここでは、色がより白くなるにつれて、彩度マッピングが低下していることがわかります。同様に、値のマッピングは元の画像で非常にはっきりと見ることができます。これは、元の画像の個々のカラー チャネルのマ​​ッピングを見ると、より明確になります (黒以外の領域は、値のマッピングとほぼ完全に一致しますが、輝度のマッピングにはほど遠いです)...
HSL飽和ここに画像の説明を入力

HSV 飽和ここに画像の説明を入力

赤チャンネルグリーンチャンネルブルーチャンネル
この情報を踏まえると、HSV は実際の画像 (特に写真) を操作するのに適しているのに対し、HSL はカラー ピッカーで色を選択する場合にのみ適していると言わざるを得ません。

ちなみに、HSV の値は CMYK の黒の逆数です。

HSL よりも HSV を使用するもう 1 つの議論は、HSL はその解像度の約半分を上部コーンに失うため、HSV は同じ色になる可能性のある異なる値の組み合わせがはるかに少ないということです。コンポーネントを表現するためにバイトを使用したとしましょう。これにより、各コンポーネントに 256 の一意のレベルが与えられます。これにより HSL で得られる固有の RGB 出力の最大数は 4,372,984 色 (使用可能な RGB 色域の 26%) です。HSV では、これは最大 9,830,041 (RGB 色域の 59%) に達します... 2 倍以上になります。色相に 0 ~ 359 の範囲を許可すると、HSV の場合は 11,780,015 になりますが、HSL の場合は 5,518,160 しかありません。

于 2017-05-08T03:28:55.117 に答える