OpenCV453
関数
OpenGL support

関数

CV_EXPORTS void cv::imshow (const String &winname, const ogl::Texture2D &tex)
 Displays OpenGL 2D texture in the specified window. [詳解]
 
CV_EXPORTS 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. [詳解]
 
CV_EXPORTS void cv::setOpenGlContext (const String &winname)
 Sets the specified window as current OpenGL context. [詳解]
 
CV_EXPORTS void cv::updateWindow (const String &winname)
 Force window to redraw its context and call draw callback ( See cv::setOpenGlDrawCallback ). [詳解]
 

詳解

関数詳解

◆ imshow()

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

Displays OpenGL 2D texture in the specified window.

引数
winnameName of the window.
texOpenGL 2D texture data.

◆ setOpenGlContext()

CV_EXPORTS void cv::setOpenGlContext ( const String &  winname)

Sets the specified window as current OpenGL context.

引数
winnameName of the window.

◆ setOpenGlDrawCallback()

CV_EXPORTS 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.

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();
}
}
引数
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)

◆ updateWindow()

CV_EXPORTS void cv::updateWindow ( const String &  winname)

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

引数
winnameName of the window.