OpenGL 支持 高级 GUI


函数

void cv::imshow (const 字符串 &winname, const ogl::Texture2D &tex)
Displays OpenGL 2D texture in the specified window. 更多...
void cv::setOpenGlContext (const 字符串 &winname)
Sets the specified window as current OpenGL context. 更多...
void cv::setOpenGlDrawCallback (const 字符串 &winname, OpenGlDrawCallback onOpenGlDraw, void *userdata=0)
Sets a callback function to be called to draw on top of displayed image. 更多...
void cv::updateWindow (const 字符串 &winname)
Force window to redraw its context and call draw callback ( See cv::setOpenGlDrawCallback ). 更多...

详细描述

函数文档编制

imshow()

void cv::imshow ( const 字符串 & winname ,
const ogl::Texture2D & tex
)
Python:
None = cv.imshow( winname, mat )

#include < opencv2/highgui.hpp >

Displays OpenGL 2D texture in the specified window.

参数
winname Name of the window.
tex OpenGL 2D texture data.

setOpenGlContext()

void cv::setOpenGlContext ( const 字符串 & winname )

#include < opencv2/highgui.hpp >

Sets the specified window as current OpenGL context.

参数
winname Name of the window.

setOpenGlDrawCallback()

void cv::setOpenGlDrawCallback ( const 字符串 & winname ,
OpenGlDrawCallback onOpenGlDraw ,
void * userdata = 0
)

#include < opencv2/highgui.hpp >

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();
}
}
参数
winname Name of the window.
onOpenGlDraw Pointer to the function to be called every frame. This function should be prototyped as void Foo(void*) .
userdata Pointer passed to the callback function.( 可选 )

updateWindow()

void cv::updateWindow ( const 字符串 & winname )

#include < opencv2/highgui.hpp >

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

参数
winname Name of the window.