画像の自動彩度ツールを実装しようとしています。画像の全体的な彩度を計算し、画像に必要な彩度ブーストの量を決定しようとしています。全球飽和度を計算するにはどうすればよいですか?
1 に答える
質問に答えるには、関心があるのが彩度ブーストだけである場合、これが最も単純なアルゴリズムです。
- 画像内で彩度が最大のピクセルを見つけます。
- 彩度が 100% になってクリップする前に彩度をどれだけスケーリングできるかを決定します。(これは、データを失い始める前に彩度を上げることができる最大値です)
- 先ほど決定した量よりも少ない彩度スケーリング量を適用します。
彩度が高すぎず、低すぎない場合、画像は十分に飽和している可能性があります... 赤いバラのクローズ アップ ショットを想像してみてください。完全に飽和していると、画像全体が赤くなります。そのため、彩度が高すぎる画像には、同じ色または非常に近い色を持つピクセルの割合が高くなる可能性があります。赤いバラのクローズ アップ ショットが彩度不足の場合、100% 赤のピクセルが含まれていない可能性があり、赤ではなくピンクに見えます。そのため、画像に完全な彩度に近いピクセルがない場合、彩度が低い可能性があります。
その他の考慮事項:
彩度には知覚的な側面があることに注意してください...黒い背景の赤い正方形は、白い背景の赤い正方形よりも彩度が高く見える場合があります。
複数のパスが必要な場合があります。画像を被写体と背景に分割し、彩度関数をそれぞれに個別に適用します。
彩度が高すぎると、物が平らに見えることがあります。彩度が低すぎると、物が死んで見えることがあります。
また、画像の彩度が高すぎる場合もあります。その場合、背景の彩度を下げると、被写体がより彩度が高くなります。
彩度関数がHSL色空間に変換しようとする限り。S コンポーネントをスケーリングして彩度を調整できます。それが元の色空間だった場合は、RGB に戻すよりも。カラー データからヒストグラムを作成します。多くの画像が同様のヒストグラムを共有していることがわかります。ヒストグラムのシナリオに基づいて、適切な彩度スケール ファクターを選択できます。