OpenCV: OpenGL support

| OpenCV 3.4.2 Open Source Computer Vision

Functions
OpenGL support
High-level GUI

## Functions
void | cv::imshow (const String &winname, const ogl::Texture2D &tex)
| Displays OpenGL 2D texture in the specified window. More...
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 ( See cv::setOpenGlDrawCallback ). More...

## Detailed Description

## Function Documentation

## ◆ imshow()

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

Displays OpenGL 2D texture in the specified window.

Parameters

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

## ◆ setOpenGlContext()

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

Sets the specified window as current OpenGL context.

Parameters

  winname | Name of the window.

## ◆ setOpenGlDrawCallback()

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

Parameters

  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.(Optional)

## ◆ updateWindow()

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

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

Parameters

  winname | Name of the window.