2011-08-04 25 views
0

我打開一個圖像與:打開BMP使用Visual C++的數組和OpenCV 2.1

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

現在我想把這個形象三個二維陣列。

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

這不起作用,因爲我得到「表達式必須有一個常量值」。爲什麼它不是恆定的?

如何將每個顏色通道分離到每個陣列?

回答

1

cvSplit分割圖像到單通道陣列(documentation)。像

+0

謝謝!這有助於我的第一次。我也使用opencv數據類型。 – vo1d

0

靜態數組分配需要的尺寸是一個編譯時常數。直到運行時才知道參數img->widthimg->height(編譯器無法知道foo.bmp的大小),因此不能像這樣靜態分配數組。

這是更好地使用cvSplit像SSteve提到反正。

+0

非常感謝 – vo1d