1

私はiPhoneアプリを書いていますが、画像を取得して単一の色にブレンドする方法を理解するのに助けが必要です。ガウスブレンドを行う必要があると思いますが、これが正しいかどうか、または正しい場合はどのように行うかがわかりません。

提案、サンプルのガウスブレンドコードスニペットへのポインタがありますか、それとも画像からブレンドカラー画像に移動するために間違った方向に向かっていますか?

既存のiPhoneフレームワークでこれを実行できるようには見えませんか、それともこの作業を簡単にするプライベートメソッドがパブリックフレームワークにありますか?

4

1 に答える 1

0

したがって、画像を取得して「単色にブレンド」する必要があります。画像の「平均色」を取得しようとしていますか?

その場合、必要な出力は単純に単一のRGB値であるため、ガウスフィルターを使用すると複雑になりすぎる可能性があります。これを行う最も簡単な方法は、各カラーチャネル(赤、緑、青)の平均を計算することです。

int r,g,b;
r=g=b=0;

for (y=0 ; y<image_height ; y++)
    for (x=0 ; x<image_width ; x++)
    {
        r = r + image[y,x,0];
        g = g + image[y,x,1];
        b = b + image[y,x,2];
    }

num_pixels = image_height * image_width;
average_r = r / num_pixels;
average_g = g / num_pixels;
average_b = b / num_pixels;

ガウスフィルターは中央重点フィルターです。つまり、フィルタリングウィンドウの中央のピクセルは、他のピクセルよりも重く重み付けされます。画像をぼかす場合はこれが適切ですが、画像全体をブレンドするには、上記の擬似コードのように、すべてのピクセルに均等に重み付けするのも同様に効果的です。

于 2011-02-02T15:43:24.890 に答える