0

Opencvトラッキングに基づいて、openGLでオブジェクトをオーバーレイしようとしていますが、OpenCVはピクセル値で機能し、OpenGLはOpenGLユニットで機能することがわかります。

今のところ私のウィンドウサイズは320x240
です。トラッキングとオーバーレイの間で同期が行われるように、何かを定義する必要があることを知っています。positionyOpenGL関数glTranslatef (positionx, positiony, positionz);を1ピクセル(つまり1 OpenGLユニット)だけ変更すると、オーバーレイオブジェクトに大きな違いが生じます...

問題は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 に答える