現在地 >> メニュー >> サンプルコード::OpenGL >> OpenGL+OpenCV::ウィンドウ


問題


OpenGLとOpenCV、両方のウィンドウを作成せよ。

答え


#include <cstdio>
#include <iostream>

#include <GL/glut.h>
#include <cv.h>
#include <highgui.h>

using namespace std;


/* コールバック系 */
void display();
void reshape(int w, int h);






/************ OpenGL の初期設定 *************/
inline void GLUT_INIT()
{
glutInitDisplayMode(GLUT_RGBA| GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(200,200);
}



inline void GLUT_CALL_FUNC()
{
glutDisplayFunc(display);
glutReshapeFunc(reshape);
}


inline void MY_INIT()
{
glClearColor(1.0, 1.0, 1.0, 1.0);
}




/************ OpenCV関係 *****************/
void CV_SET_UP()
{
cvNamedWindow("OpenCV",CV_WINDOW_AUTOSIZE);
}




/************ main 関数 ********************/
int main(int argc, char ** argv)
{

glutInit(&argc,argv);
GLUT_INIT();

glutCreateWindow("OpenGL");
GLUT_CALL_FUNC();

MY_INIT();

CV_SET_UP(); //OpenCV関係


glutMainLoop();

return 0;
}


/********[ここから各種コールバック]****************************************/
void display()
{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glutSwapBuffers();


}



void reshape(int w, int h)
{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-1,1,-1,1,3,20);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}

メモ


OpenCVのほうは、keywait(0)しなくてよい。

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます