2010-05-12 2 views
6

OpenCV의 "새"2.0 C++ 버전을 사용하려고하지만 모든 것이 단순한 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' 타입의 색깔을 가진 특정 region을 설정하기를 원할 것입니다. –

답변

14

Vec3i 대신 Vec3b을 사용해야합니까?

CV_8UC3은 이미지가 8 비트, 3 채널, 부호없는 문자임을 의미합니다. Vec3i은 3 채널 정수이고 Vec3b은 3 채널 unsigned char입니다.

그래서 I는 Vec3b