2010-05-12 166 views
6

我試圖使用「新」2.0 c + +版本的OpenCV,但一切就像在簡單的C版本。我在更改圖像中的值時遇到了一些問題。OpenCV(C++)多通道元素訪問

圖像是CV_8UC3。

for (int i=0; i<image.rows; i++) 
{ 
    for (int j=0; j<image.cols; j++) 
    { 
     if (someArray[i][j] == 0) 
     { 
      image.at<Vec3i>(i,j)[0] = 0; 
      image.at<Vec3i>(i,j)[1] = 0; 
      image.at<Vec3i>(i,j)[2] = 0; 
     } 
    } 
} 

這不起作用。我究竟做錯了什麼???

謝謝!

+0

的另一種方式,'圖像(CV ::矩形(X,Y,寬度,高度))= CV ::標量(R,G,B);'如果你想用'CV_8UC3'類型的顏色設置一個特定的區域。 – 2014-07-16 11:31:18

回答

14

您不應該使用Vec3b而不是Vec3i

CV_8UC3表示您的圖像是8位,3通道,無符號字符。而Vec3i用於3通道整數,而Vec3b用於3通道無符號字符。

所以我想你應該使用Vec3b