2011-08-04 4 views
0

私はで画像を開きます。開き、BMPとOpenCVの2.1

IplImage *img = cvLoadImage("C:\\foo.bmp",-1); 

そして今、私は、3次元の配列にこの画像を載せていきたいと思います。

unsigned int r[img->width][img->height]; 
unsigned int g[img->width][img->height]; 
unsigned int b[img->width][img->height]; 

「式には一定の値が必要です」と表示されるため、これは機能しません。なぜそれは一定ではないのですか?

どのように各色チャンネルを各アレイに分けることができますか?

答えて

1

cvSplitは、画像を1チャンネルの配列(documentation)に分割します。

+0

ありがとうございました!これは最初の私に役立ちます。私はopencvのデータ型も使用します。 – vo1d

0

このような静的配列の割り当てでは、次元がのコンパイル時間でなければなりません。パラメータimg->widthimg->heightは実行時までわかりません(コンパイラはfoo.bmpのサイズを知ることができません)ので、静的にそのような配列を割り当てることはできません。

とにかくSSteveのようにcvSplitを使用する方が良いです。

+0

ありがとう – vo1d

関連する問題