1. 線上互動白板
- 玩玩看老師寫的程式
2. TEXTRUE.exe
- 打開執行檔看貼圖的程式碼
3. Install OpenCV
- 注意:記得選Add OpenCV to the system PATH for all users
- 安裝完成後才能開CodeBlocks
- 打開CodeBlocks設定裡的編譯器選項
- 在Compiler -> Search direction -> Compiler -> 增加目錄 C:\OpenCV2.1\include
- 再到 Linker 增加目錄 C:\OpenCV2.1\lib
- 到 Linker settings 增加三個連結
4.開始寫程式
- 開啟GLUT專案檔 -> 把圖片放在 bin 資料夾
- 寫程式讀圖片
#include <opencv/highgui.h>int main(){IplImage*img=cvLoadImage("image.jpg");cvShowImage("image.jpg",img);cvWaitKey(0);}
執行結果:
- 複製程式碼
- 把圖片貼在茶壺上
- 紅字 : 記得改圖片名
#include <opencv/highgui.h> ///使用 OpenCV 2.1 比較簡單, 只要用 High GUI 即可#include <opencv/cv.h>#include <GL/glut.h>void init(){IplImage * img = cvLoadImage("one.png"); ///OpenCV讀圖cvCvtColor(img,img, CV_BGR2RGB); ///OpenCV轉色彩 (需要cv.h)glEnable(GL_TEXTURE_2D); ///1. 開啟貼圖功能GLuint id; ///準備一個 unsigned int 整數, 叫 貼圖IDglGenTextures(1, &id); /// 產生Generate 貼圖IDglBindTexture(GL_TEXTURE_2D, id); ///綁定bind 貼圖IDglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);/// 貼圖參數, 超過包裝的範圖T, 就重覆貼圖glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);/// 貼圖參數, 超過包裝的範圖S, 就重覆貼圖glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);/// 貼圖參數, 放大時的內插, 用最近點glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);/// 貼圖參數, 縮小時的內插, 用最近點glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, img->width, img->height, 0, GL_RGB, GL_UNSIGNED_BYTE, img->imageData);} ///最後一行最難/最重要, 所貼圖影像的資料都設定好void display(){glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glutSolidTeapot(0.3);glutSwapBuffers();}int main(int argc,char ** argv){glutInit(&argc,argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);glutCreateWindow("week07");glutDisplayFunc(display);init();glutMainLoop();}
- 更改display()
- 畫出背景圖
void display(){glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glBegin(GL_POLYGON);glTexCoord2f(0,1); glVertex2f(-1,-1);glTexCoord2f(1,1); glVertex2f(1,-1);glTexCoord2f(1,0); glVertex2f(1,1);glTexCoord2f(0,0); glVertex2f(-1,1);glEnd();glutSwapBuffers();}
執行結果:









沒有留言:
張貼留言