How to set background in OpenGL captured image from OpenCV

Hey All,

i’m relatively new to Artoolkitplus and openGL

i’m having a tough time getting the image i capture through openCV to be set as the background image in OpenGL …

I also cannot convert the image i take through the camera using opencv to be scaled to 320x280 from 640x480 …
i also have to save my image and load if for things to work…

here’s my code

////////////

int findMarker()
{
IplImage* image = cvQueryFrame( capture );

if( !capture ) {
fprintf( stderr, “ERROR: capture is NULL \n” );
getchar();
return -1;
}
if( !image ) {
fprintf( stderr, “ERROR: frame is null…\n” );
getchar();
}

//cvShowImage( “Capture”, frame );
//image = cvCloneImage( frame );

try{
if(!cvSaveImage(“immagineTmp.jpg”,image)) printf(“Could not save\n”);
}
catch(void*)
{}

image = cvLoadImage(“immagineTmp.jpg”, 1);

cvShowImage( “Image”, image );
glLoadIdentity();

//////////////
glDisable(GL_DEPTH_TEST);
glOrtho(0,640,0,480,-1,1);

glGenTextures(1, &bgid);
glBindTexture(GL_TEXTURE_2D, bgid);

// Create Linear Filtered Texture
glBindTexture(GL_TEXTURE_2D, bgid);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, 3, image->width, image->height, 0, GL_RGB, GL_UNSIGNED_BYTE, image->imageData);

glBindTexture(GL_TEXTURE_2D, bgid);

glBegin(GL_QUADS);

glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.2f, -1.0f, -2.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.2f, -1.0f, -2.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.2f, 1.0f, -2.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.2f, 1.0f, -2.0f);

glEnd();
glEnable(GL_DEPTH_TEST);
glLoadIdentity();

////////////

// do the OpenGL camera setup
glMatrixMode(GL_PROJECTION);
glLoadMatrixf(tracker->getProjectionMatrix());

int markerId = tracker->calc((unsigned char *)(image->imageData));
float conf = tracker->getConfidence();

// use the result of calc() to setup the OpenGL transformation
glMatrixMode(GL_MODELVIEW);
glLoadMatrixf(tracker->getModelViewMatrix());

if(markerId!=-1)
{
printf("\n\nFound marker %d (confidence %d%%)\n\nPose-Matrix:\n “, markerId, (int(conf*100.0f)));
for(int i=0; i<16; i++)
printf(”%.2f %s", tracker->getModelViewMatrix()[i], (i%4==3)?"\n " : “”);
}

cvReleaseImage(&image);
return 0;
}

is this an openframeworks question?

for general opengl questions, try opengl.org

thanks!
zach