OpenCV  3.0.0
Open Source Computer Vision
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Functions
OpenGL support

Functions

void cv::imshow (const String &winname, const ogl::Texture2D &tex)
 
void cv::setOpenGlContext (const String &winname)
 Sets the specified window as current OpenGL context. More...
 
void cv::setOpenGlDrawCallback (const String &winname, OpenGlDrawCallback onOpenGlDraw, void *userdata=0)
 Sets a callback function to be called to draw on top of displayed image. More...
 
void cv::updateWindow (const String &winname)
 Force window to redraw its context and call draw callback ( setOpenGlDrawCallback ). More...
 

Detailed Description

Function Documentation

void cv::imshow ( const String &  winname,
const ogl::Texture2D &  tex 
)
void cv::setOpenGlContext ( const String &  winname)

Sets the specified window as current OpenGL context.

Parameters
winnameWindow name
void cv::setOpenGlDrawCallback ( const String &  winname,
OpenGlDrawCallback  onOpenGlDraw,
void *  userdata = 0 
)

Sets a callback function to be called to draw on top of displayed image.

Parameters
winnameName of the window.
onOpenGlDrawPointer to the function to be called every frame. This function should be prototyped as void Foo(void*) .
userdataPointer passed to the callback function. *(Optional)*

The function setOpenGlDrawCallback can be used to draw 3D data on the window. See the example of callback function below: :

void on_opengl(void* param)
{
glLoadIdentity();
glTranslated(0.0, 0.0, -1.0);
glRotatef( 55, 1, 0, 0 );
glRotatef( 45, 0, 1, 0 );
glRotatef( 0, 0, 0, 1 );
static const int coords[6][4][3] = {
{ { +1, -1, -1 }, { -1, -1, -1 }, { -1, +1, -1 }, { +1, +1, -1 } },
{ { +1, +1, -1 }, { -1, +1, -1 }, { -1, +1, +1 }, { +1, +1, +1 } },
{ { +1, -1, +1 }, { +1, -1, -1 }, { +1, +1, -1 }, { +1, +1, +1 } },
{ { -1, -1, -1 }, { -1, -1, +1 }, { -1, +1, +1 }, { -1, +1, -1 } },
{ { +1, -1, +1 }, { -1, -1, +1 }, { -1, -1, -1 }, { +1, -1, -1 } },
{ { -1, -1, +1 }, { +1, -1, +1 }, { +1, +1, +1 }, { -1, +1, +1 } }
};
for (int i = 0; i < 6; ++i) {
glColor3ub( i*20, 100+i*10, i*42 );
glBegin(GL_QUADS);
for (int j = 0; j < 4; ++j) {
glVertex3d(0.2 * coords[i][j][0], 0.2 * coords[i][j][1], 0.2 * coords[i][j][2]);
}
glEnd();
}
}
void cv::updateWindow ( const String &  winname)

Force window to redraw its context and call draw callback ( setOpenGlDrawCallback ).

Parameters
winnameWindow name