2011-03-15 4 views
0

데이터를 cvMat로 복사하는 데 문제가 있습니다. 나는 또한 구조를 만들려고했지만 작동하지 않았다. 내가 얻는 출력은 검은 색 이미지입니다.rgb 8 비트 다른 데이터의 cvMat

CvMat* rgbMat = cvCreateMat(480,640,CV_8UC3); 
IplImage *kinectRgbImage; 
RgbImage = cvCreateImage(cvSize(640,480),8,3); 

...stuff... 
//from pImageMap you can access to the blue,red,green color parts of the image 

for (int y=0; y<XN_VGA_Y_RES; y++) 
{ 
for(int x=0;x<XN_VGA_X_RES;x++) 
{ 
rgbPointer[y * XN_VGA_X_RES + x ].blue= pImageMap[y * XN_VGA_X_RES + x].nBlue; 
rgbPointer[y * XN_VGA_X_RES + x ].green= pImageMap[y * XN_VGA_X_RES + x].nGreen; 
rgbPointer[y * XN_VGA_X_RES + x ].red= pImageMap[y * XN_VGA_X_RES + x].nRed; 
}} 

cvGetImage(rgbPointer,RgbImage); 
cvShowImage("Rgb", RgbImage); 

내가

rgbMat->data.s[ 3 * (y * XN_VGA_X_RES + x) + 0 ] = pImageMap[ 3 * (y * XN_VGA_X_RES + x) + 0 ] .nBlue; 

및 다른 방법하지만 방법으로 데이터를 복사 할 수도 시도 .. 그것은 새로운 이력서에 약간 변경되었습니다

답변

0

: 이 관련 코드입니다 : : opencv2.2에서 MAt보기. individual colour pixel access

I(x,y)blue ~ ((uchar*)(img->imageData + img->widthStep*y))[x*3] 
I(x,y)green ~ ((uchar*)(img->imageData + img->widthStep*y))[x*3+1] 
I(x,y)red ~ ((uchar*)(img->imageData + img->widthStep*y))[x*3+2] 
관련 문제