#include <GL/glut.h>
#include <opencv/highgui.h>
#include <opencv/cv.h>
void display(){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidTeapot( 0.3 );
glutSwapBuffers();
}
int myTexture(char *filename){ ///回傳貼圖id依據圖片檔名
cvCvtColor(img,img,CV_BGR2RGB); ///OpemCV轉色彩(需要cv.h)
IplImage*img=cvLoadImage(filename); ///回傳依據圖片檔名
Enable(GL_TEXTURE_2D); ///開啓貼圖功能
GLuint id; ///準備一個整數,叫貼圖id
glGenTextures(1,&id);
glBindTexture(GL_TEXTURE_2D,id);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);//黑
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);//窗
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT); //範
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT); //例
glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,img->width,img->height,0);
return id;
}
void myInit(){
quad=gluNewQuadric();
id=myTexture("image.jpg");
}
int main(int argc,char **argv){
IplImage*img=cvLoadImage("image.jpg");
cvShowImage("opencv Window",img);
cvWaitKey(0);
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT");
glutDisplayFunc(display);
glutMainLoop();
}