0

わかりましたので、ビットマップ画像のピクセルを表す NxN マトリックスを作成したいという状況です。
次に、特定の領域にあるすべてのピクセルの値を一定の値に変更したいと思います。

領域は、極座標を使用して定義されます。

たとえば、マトリックスが 2048x2048 ピクセルのビットマップを表し、領域が 25<=r<200、0<=theta<π/4 で定義され、その領域にあるすべてのポイントの値を設定したいとします。何らかの定数 k (別の場所で定義) に変換します。

これについて最善の方法は何ですか?
vImage や Accelerate フレームワークの一部など、Apple のライブラリのいずれかを調べる必要がありますか。
それとも、NxN マトリックスの各ピクセルを調べて、手動で取り組む必要があるほど具体的なものですか?それは関心のある領域にありますか?

いくつかの for ループをハードコーディングするよりも効率的な方法が必要なようです。特に、領域に任意の定義がある場合、たとえば、ユーザーが描いた波線のループなどです。

アドバイス?

4

1 に答える 1

1

Accelerate Frameworkは、画像を操作するための多くの機能を提供します。

あなたの場合、ルックアップテーブルを使用した画像変換のためのvImageTableLookUp_*関数を備えたvImageFrameworkを勧めします。

たとえば、25から200までの赤の値を定数にする必要がある場合は、配列を作成します

int red[256];
for (int i = 0; i < 256; i++) {
    if (i >= 25 && i < 200) {
        red[i] = MY_CONSTANT_VALUE;
    } else {
        red[i] = i;
    }
}

その配列を上記の関数に渡します。

于 2013-01-29T15:24:42.407 に答える