2017年12月21日 星期四

我只是一只可愛的麻雀(._.)Week08 筆記

第八週主題:貼圖Texture

openCV的安裝、讀圖
openGL貼圖設定


1. 去老師的網站載東西 http://jsyeh.org/3dcg10 
下載>> source data win32 glut32.dll



把windows內的項目跟glut32.dll放在一起
另外data跟source可以解壓縮到資料夾中

開啟 texture.exe


調整參數 觀察圖片的變化

glTexCoord2f(0.0,0.0); //前面是調整X軸, 後面調整Y軸
↑調整貼圖的位置


2. 下載安裝 openCV
搜尋OpenCV2.1並下載安裝
或者直接從moodle上下載安裝 OpenCV-2.1.0-win32-vs2008.exe

安裝選項!!
↓↓↓



接著打開codeblocks -> new project -> console application



project (右鍵選取) build options



Linker settings




Search directories -> compiler -> 找到openCV2.1的include資料夾路徑


Search directories -> linker -> 找到openCV2.1的 lib資料夾路徑




3. 打code囉!! main.cpp輸入

#include <opencv/highgui.h>


int main()
{
    IplImage *img = cvLoadImage("earth.jpg"); ///讀進一個圖檔
    cvNamedWindow("opencv starting");
    cvShowImage("opencv starting",img);
    cvWaitKey(0);

    return 0;

}



compile失敗了怎麼辦?!

遇到的問題:
libcv-dev: error: 'ptrdiff_t' does not name a type

Not only the package itself fails to build, but any other package depending on libcv-dev also fails with the new g++ with this error:
error: 'ptrdiff_t' does not name a type
The solution is very simple: to add an #include <stddef.h> to /usr/include/opencv/cxcore.hpp.



↑↑↑ 在cxcore.hpp (opencv2.1/lib中找到這個檔案) 新增這行 #include <stddef.h>
就可以解決這個問題了:3

4. 執行結果



*讓glut跟opencv共存*

1. 開啟一個glut專案檔
2. 修改main的程式碼
就是把剛才在opencv寫的程式碼放上去



3. 一樣修改剛才做過的setting (include lib等等的)
4. 把圖片丟到freeglut/bin的資料夾裡才能到正確的路徑讀圖



5. 執行結果

會先跑出 opencv的地球圖
此時在這個視窗按任意鍵就會跑出左邊glut的程式了~



*讓opencv的圖可以在glut中旋轉*

去moodle把老師的檔案載下來~ week08-3earth.zip
然後取用老師的code (這樣比較快)




執行結果

這圖會轉喔XD (看起來好噁心www)




沒有留言:

張貼留言