2

Int 配列、Argb32 画像が与えられた場合、どうすればこれを固有行列に最適な方法でロードできますか?

目標は、小さな画像処理ライブラリを作成することです。最初の部分として、RGB からグレースケールに変換したいと思います。

メモリをコピーせずに int[] を 3 つの固有行列にロードする方法はありますか?

(固有値を参照する場合、その線形代数ライブラリ)。

4

1 に答える 1

3

はい、適切な内部ストライドで Map<> クラスを使用します。次に例を示します。

unsigned char* data = ...;
int w, h; // the width and height
typedef Map<Matrix<unsigned char,Dynamic,Dynamic>, 0, InnerStride<4> > Slide;
Slice red(data, w, h), green(data+1, w, h), blue(data+2, w, h);

次に、グレー レベルの浮動小数点バージョンを作成するなど、それらを使って遊ぶことができます。

MatrixXf gray = (red.cast<float>() * 11 + green.cast<float>() * 16 + blue.cast<float>() * 5)/(32.*255.);
于 2013-01-27T17:13:56.380 に答える