• Source
    1. #include <GL/glut.h>
    2. #include <opencv/highgui.h>
    3. #include <opencv/cv.h>
    4.  
    5. void display(){
    6. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    7. glutSolidTeapot( 0.3 );
    8. glutSwapBuffers();
    9. }
    10. int myTexture(char *filename){ ///回傳貼圖id依據圖片檔名
    11. cvCvtColor(img,img,CV_BGR2RGB); ///OpemCV轉色彩(需要cv.h)
    12. IplImage*img=cvLoadImage(filename); ///回傳依據圖片檔名
    13. Enable(GL_TEXTURE_2D); ///開啓貼圖功能
    14. GLuint id; ///準備一個整數,叫貼圖id
    15. glGenTextures(1,&id);
    16. glBindTexture(GL_TEXTURE_2D,id);
    17. glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);//黑
    18. glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);//窗
    19. glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT); //範
    20. glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT); //例
    21. glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,img->width,img->height,0);
    22.  
    23. return id;
    24.  
    25. }
    26. void myInit(){
    27. quad=gluNewQuadric();
    28. id=myTexture("image.jpg");
    29. }
    30.  
    31. int main(int argc,char **argv){
    32.  
    33. IplImage*img=cvLoadImage("image.jpg");
    34. cvShowImage("opencv Window",img);
    35. cvWaitKey(0);
    36.  
    37. glutInit(&argc,argv);
    38. glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    39. glutCreateWindow("GLUT");
    40. glutDisplayFunc(display);
    41.  
    42.  
    43. glutMainLoop();
    44. }
    45.