0

基于 Opencv 跟踪,我试图在 openGL 中覆盖对象,但我看到 OpenCV 适用于像素值,而 OpenGL 适用于 OpenGL 单元。

我现在的窗口大小是 320 x 240。
我知道我必须定义一些东西,以便在跟踪和覆盖之间实现同步。当我只改变 1 个像素(即 1 个 OpenGL 单元)positiony的 OpenGL 函数时,我在覆盖对象上得到了巨大的差异......glTranslatef (positionx, positiony, positionz);

我认为问题在于Opencv和OpenGL比例的同步......

4

1 回答 1

1

您需要使用屏幕对齐的正交投影将 OpenGL 单元与屏幕像素 1:1 映射。

    glViewport(0,0,320,240);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0,320,0,240,0,1);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

希望这可以帮助!

于 2012-07-23T13:16:57.503 回答