🎨

LCH空間における領域ラベリングによるディザ減色

に公開

LCH空間における領域ラベリングによるディザ減色

本記事では、LCH色空間における領域ラベリングを用いた減色アルゴリズムの構造と、実装済みのC#コードについて簡潔にまとめる。

背景と目的

視覚的に自然な減色処理を行うには、人間の色知覚に沿った色空間の活用が効果的である。LCH色空間(Lightness, Chroma, Hue)は、Lab色空間を極座標に変換したものであり、Hue(色相)とChroma(彩度)の概念が明確に分離されている。

本手法では、近傍色への距離を定義し、各画素をLCH空間内のクラスター(領域)へラベリングすることで、減色を実現する。

アルゴリズム概要

  1. 入力画像をLCH色空間へ変換
  2. 指定されたカラーパレットをもとに、代表LCH色を定義
  3. 各画素について、代表LCH色とのユークリッド距離を計算
  4. 最も距離が近い代表色にラベリング(減色)
  5. クラスター(代表色)ごとに許容される色数を制限し、領域内の細かな色バリエーションを排除
  6. ラベリングされた画像をRGB空間に変換し出力

距離計算はChromaとHueが極端に異なる場合にも破綻しないよう、Hue成分の環状性に注意を払った定義となっている。

実装コード

C#での実装は以下にて公開している:

🔗 GitHub - SimpleLChDistanceReducer2.cs

特徴:

  • ColorConverterを用いたRGB→Lab→LCH変換
  • Hue距離の調整により、赤↔紫の円周補正を内包
  • クラスターごとの最大色数を制限するロジックを実装(色の代表性を維持)
  • 距離に応じた減色ラベリングのみを実装(エッジ保存やノイズ制御は別途)

応用と課題

  • 高速に減色可能であり、レトロ画風やポスタライズ処理などに向く
  • セマンティック処理や意味ラベリングとの統合には未対応(別シリーズで検討)
  • クラスターごとの色数制限により、過剰な彩度保持や微小な色情報の冗長性が抑えられる

終わりに

LCH空間における色間距離は、視覚的に自然な類似性を保持しながら減色を行う上で有効である。今後は領域ラベリングに加えて、構造保存やセマンティックマップとの統合も視野に入れていく。

Discussion