2

画像が特定の明るさを超えているかどうかを判断する必要があります。0 ~ 255 のスケールを使用して、画像の明るさを反映するためにこの範囲内の値を生成したいと考えています。

つまり、白い画像は 255 で、黒い画像は 0 です。

これはすべて、現在作成中の bash スクリプトを介して行う必要があります。ただし、どの画像ライブラリがこれを行うことができるかわかりません。

4

2 に答える 2

6

一般に、これは信号処理の典型的な問題の1つであり、「明るさ」をどのように定義するかに基づいて、いくつかのアプローチがあります。画像の「明るさ」や音声信号の「ラウドネス」などは一般的に同じです。

一般的な「明るさ」として使用できるもののいくつかのアイデアは次のとおりです。

  • すべてのピクセルの平均値(つまり、すべてのピクセルのすべての明るさを合計してから、ピクセルの合計量、つまり幅*高さで除算します)。
  • 輝度分布のヒストグラムを作成し、そのヒストグラムで、画像内のすべてのピクセルの98%(95%、90%、70%-この数値は変動する可能性があります)がこのxよりも明るくないような点xを選択します。それはパーセンタイルと呼ばれます。
  • すべてのピクセルの「二乗平均平方根」(RMS)を計算します(すべてのピクセルの二乗を合計し、ピクセルの合計量で除算し、これから平方根を抽出します)。

良い結果をもたらすことができる複数の画像ライブラリがあります。シェルスクリプトから使用するのが最も簡単なのは、おそらくImageMagick / GraphicsMagickです。必要に応じて、単純な平均を取得し、より複雑なヒストグラムを作成してパーセンタイルを確認できます。

于 2010-11-21T22:59:00.037 に答える
5

ImageMagickの灰色の統計またはヒストグラムを試してください

convert rose: -colorspace gray -format "%[fx:100*mean]%%" info:
于 2010-11-21T22:53:48.283 に答える