5

画像肌検出アプリを開発しています。

しかし、私のカメラには問題があり、光を補正しようとすると結果の画像が悪くなります。ほとんどの場合、画像に寒さや暖かさの影響があります。Photoshop を使用すると、画像を正規化してこの問題を軽減する AutoTone 機能があります。

画像

Photoshop AutoTone 後の画像

aforge で HistogramEqualization() フィルターを使用したいのですが、結果は非常に悪いです:

HistogramEqualization 後の画像

// create filter
HistogramEqualization filter = new HistogramEqualization( );
// process image
filter.ApplyInPlace( sourceImage );

私の質問は、Photoshop のオートトーンと同じ結果を得る機能が Accord または Aforge にありますか? そうでない場合、これを可能にするライブラリまたはスクリプトはありますか?

皆さん、ありがとうございました。

4

2 に答える 2

3

LevelsLinear フィルターを使用し、画像統計に基づいています。

ImageStatistics stats = new ImageStatistics(sourceImage);
LevelsLinear levelsLinear = new LevelsLinear {
    InRed = stats.Red.GetRange( 0.90 ),
    InGreen = stats.Green.GetRange( 0.90 ),
    InBlue  = stats.Blue.GetRange( 0.90 )
};

levelsLinear.ApplyInPlace(sourceImage);

範囲を操作して、結果を微調整できます。

于 2013-03-30T10:17:51.510 に答える
1

ご覧のとおり、通常は赤があまり含まれていない写真に大量の赤が作成され、見栄えが悪くなってしまうため、おそらくヒストグラムを均等化する必要はありません。代わりに、ほぼすべての場所で発生する色相への偏りを調べたいと思うでしょう。たとえば、元の写真は、ほぼすべてのピクセルで青色に偏っていた可能性があり、おそらくそこにあるべきではありません。最小の偏りを探し、その量をどこからでも削除します。

より実用的な解決策は、カメラのホワイト バランス設定を試して、何が最良の結果をもたらすかを確認することです。適切なプリセットを選択すると、おそらく手作業で作成するのと同じくらい優れたアルゴリズムが活用されます。しかし、あなたはこれを学習経験としてやっているのかもしれません。

于 2013-03-28T21:39:32.023 に答える