顯示具有 Week08 標籤的文章。 顯示所有文章
顯示具有 Week08 標籤的文章。 顯示所有文章

2018年1月16日 星期二

Week8

1 下載openCV2.1
2 新建貝殼專案
3 設定OpenCV相關資料路徑
A 對專案點擊右鍵
B 選擇Build options
C *search directories->compiler-> ……..\openCV2.1\include
*search directories->linker-> ……..\openCV2.1\lib
*linker setting->cv21,cxcore210,highgui210
4 下載圖片道專案目錄底下
5 輸入範例程式碼並執行可以開啟圖片
6 新建Glut專案
7 同樣方式再次設定路經
8 把圖檔放到freeglut/bin 底下


9 複製老師程式碼全部選取代貼上並執行,便可以看到自轉的地球了

2018年1月13日 星期六

圖學筆記WEEK08

一、.至jsyeh.org/3dcg10下載data.zip windows.zip glut32到桌面
二、至Moodle下載 opencv2.1.0-win32-vs2008.exe
三、打開codeblocks 貝殼專案檔
四、輸入程式碼
#include<opencv/highgui.h>
int main()
{
    IplImage *img = cvLoadImage("earth.jpg");
    cvNamedWindow("hello opencv");
    cvShowImage("hello opencv", img);
    cvWaitKey(0);
    
    return 0;
}
五、此時無法執行!!
*右鍵點選左邊project,build options
*search directories->compiler->C:\openCV2.1\include
*search directories->linker->C:\openCV2.1\lib
*linker setting->cv21,cxcore210,highgui210
6.即可執行
int myTexture(char *filename)
{
    IplImage * img = cvLoadImage(filename); ///OpenCV讀圖
    cvCvtColor(img,img, CV_BGR2RGB); ///OpenCV轉色彩 (需要cv.h)
    glEnable(GL_TEXTURE_2D); ///1. 開啟貼圖功能
    GLuint id; ///準備一個 unsigned int 整數, 叫 貼圖ID
    glGenTextures(1, &id); /// 產生Generate 貼圖ID
    glBindTexture(GL_TEXTURE_2D, id); ///綁定bind 貼圖ID
    glTexParameteri(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);
    return id;
}

2018年1月4日 星期四

Arthus week8

week8

Texture 貼圖
OPen CV的安裝,讀圖
open GL的貼圖設定
EX:轉動地球

http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/下載data、windows、glut32、source把date和glut32.dll放入windows資料夾裡
到moodle中下載OpenCV-2.1.0-win32-vs2008.exe
安裝過程中選第3個選項
打開codeblocks開專案檔console application複製貼上
#include <opencv/highgui.h>
int main()
{
IplImage * img=cvLoadImage("earth.jpg");
cvNamedWindow("hello");
cvShowImage("hello", img);
cvWaitKey(0);
return 0;
}
codeblocks設定中改成->Build options->Search directories
Search directories->Compiler->Add directory : c:\opencv2.1\include
Search directories->Linker->Add directory : c:\opencv2.1\lib
Linker setting->Add library : cv210 
Linker setting->Add library : cxcore210 
Linker setting->Add library : highgui210
下載圖檔並放到專案檔中

2017年12月28日 星期四

Hello World_OpenGL_note_Week 08

Week 08


步驟一: 目前是我的暫時測試:
本圖是將老師所給的檔案,以另外一個圖片取代原圖片,
卻有解析度上的問題,正在嘗試resize

步驟二: 發現有奇怪的點,自從換一個旋轉軸後。
為了保護原圖的版權,反白以示修過,附帶一提: 沒有針對任何人身或是動物攻擊

步驟三:  嘗試使用 Cylinder 後的結果。(有改變參數)






2017年11月9日 星期四

Claire 的課堂作業 week8




計算機圖學 Computer Graphics
  1. 主軸:Texture 貼圖
  2. OpenCV 安裝、讀圖
  3. OpenGL 貼圖設定
  4. 範例:轉動地球



看範例

這裡下載檔案:data   win7   source    glut32.dll



資料夾解壓縮後,注意路徑的整合,才可以執行哦 ~
windows.zip -----> desktop\windows\texture.exe
glut32.dll ---------> desktop\windows\glut32.dll
data.zip ----------> desktop\windows\data\





// 貼圖
glTexCoord2f ( tx, ty ) ;


OpenCV 安裝、讀圖



以下是葉老師的錄製的影片,一步步教大家怎麼在CodeBlocks安裝設置OpenCV,
裡面還有很多教學影片哦 ~ 歡迎參考




1. 在moodle上下載OpenCV的檔案,完成後安裝,特別要注意畫面如果出現這個步驟,請不要選第一個 !




2. 接著打開CodeBlocks 新增一個Console Application專案







3. 建立專案完成後長這樣





4. 接下來到google找到一張世界地圖的圖片,下載後可以放到專案底下的資料夾






5. 在CodeBlocks裡面編譯了OpenCV讀圖的幾行程式碼,但執行卻有些問題,
這是因為剛剛下載的OpenCV安裝了,但還沒有和CodeBlocks連結哦





6. 在專案右鍵 ---> Build Options...




7. 要設定一些檔案,首先是Search Direction 之下的Compiler 和 Linker,
找到剛剛下載的OpenCV位置,複製路徑加進來

Compiler ----對應----> include
Linker -------對應----> lib









8. 再來設置Linker setting,加入OpenCV的lib







9. 完成如下,就可以讀圖檔囉 !




照同樣的方式,只要新增一個GLUT專案,就可以和OpenCV並存!



羅宣的學習筆記_WEEK08

1.安裝OpenCV 選取 Add OpenCV to the system PATH for all users 其他都按下一步

2.到 jsyeh.org/3dcg10下載 data.zip, windows.zip , glut32.dll, source.zip
3.開啟Project 選取 Console application,語言選C++



3.複製程式碼放進cpp檔
#include <opencv/highgui.h>

int main()
{
    IplImage * img = cvLoadImage("earth.jpg");
    cvNamedWindow("Hello opencv");
    cvShowImage("Hello opencv", img);
    cvWaitKey(0);
}
4.在Codeblocks中對 666.cbp 按右鍵 -->  Build Option --> Search directories

 5.   Compiler --> Add --> 輸入 : 【c:\\opencv2.1\include】
     Linker     --> Add --> 輸入 : 【c:\\opencv2.1\lib】



 6.  點選 Linker setting --> Link Libraries 
      Add --> 輸入 --> 【cv210】
      Add --> 輸入 --> 【cxcore210】
      Add --> 輸入 --> 【highgui210】
      點選OK

7.下載一張earth.jpg放在專案資料夾內,並執行

8.再開一個glut專案
一樣Codeblocks中對 777.cbp 按右鍵 -->  Build Option --> Search directories
Compiler --> Add --> 輸入 : 【c:\\opencv2.1\include】
     Linker     --> Add --> 輸入 : 【c:\\opencv2.1\lib】
點選 Linker setting --> Link Libraries 
      Add --> 輸入 --> 【cv210】
      Add --> 輸入 --> 【cxcore210】
      Add --> 輸入 --> 【highgui210】
9.再將程式碼 加到main裡面
IplImage * img = cvLoadImage("earth.jpg");
    cvNamedWindow("Hello opencv");
    cvShowImage("Hello opencv", img);
    //cvWaitKey(0);
10.把#include <opencv/highgui.h>加入main.cpp 並執行


--------------------------------------------------------------------------------------
啟動程式OpenGL貼圖

複製程式碼到Glut專案的main.cpp 直接覆蓋
#include <opencv/highgui.h> ///for cvLoadImage()
#include <opencv/cv.h> ///for cvCvtColor()
#include <GL/glut.h> ///3D glut
#include <stdio.h>
GLUquadric * quad;
GLuint id;
float angle=0;
void display()
{   glEnable(GL_DEPTH_TEST); ///要啟動 Detph Test 深度值的測試,3D顯示才正確
    glClear(GL_COLOR_BUFFER_BIT  | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();///自動轉很帥
        glRotatef(90, 1,0,0);
        glRotatef(angle, 0,0,1);///自動轉很帥
        gluQuadricTexture(quad, 1);
        gluSphere(quad, 1, 30, 30);///glutSolidTeapot(0.3);
    glPopMatrix();///自動轉很帥
    glFlush();
}
void timer(int t)
{   glutTimerFunc(20, timer, 0);/// 1000 msec   50fps:20msec
    angle+=1;///自動轉很帥
    glutPostRedisplay();
}
int myTexture(char *filename)
{
    IplImage * img = cvLoadImage(filename); ///OpenCV讀圖
    cvCvtColor(img,img, CV_BGR2RGB); ///OpenCV轉色彩 (需要cv.h)
    glEnable(GL_TEXTURE_2D); ///1. 開啟貼圖功能
    GLuint id; ///準備一個 unsigned int 整數, 叫 貼圖ID
    glGenTextures(1, &id); /// 產生Generate 貼圖ID
    glBindTexture(GL_TEXTURE_2D, id); ///綁定bind 貼圖ID
    glTexParameteri(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);
    return id;
}
void myInit()
{   quad = gluNewQuadric();
    id = myTexture("earth.jpg");
}
int main(int argc, char**argv)
{   glutInit(&argc, argv);
    glutCreateWindow("3D");
    glutDisplayFunc(display); ///顯示
    glutTimerFunc(0, timer, 0);
    myInit(); ///我的 init 初始化 把貼圖準備好 前面OpenCV 2行, 後面 OpenGL 9行
    glutMainLoop();
}

就有會轉的地球了!

俊凱的week08筆記

Topic1
1.至jsyeh.org/3dcg10下載data.zip windows.zip glut32到桌面
2.至Moodle下載 opencv2.1.0-win32-vs2008.exe
3.打開codeblocks 貝殼專案檔
4.輸入程式碼
5.此時無法執行!!
*右鍵點選左邊project,build options
*search directories->compiler->C:\openCV2.1\include
*search directories->linker->C:\openCV2.1\lib
*linker setting->cv21,cxcore210,highgui210
6.即可執行

Topic2:在glut開啟opencv圖檔
1.記號部分為新增之程式碼至glut專案檔中,並完成以上所有步驟
2.須將圖案放置freeglut的bin資料夾中

Topic3:地球轉動
1.下載老師程式碼

2017年11月8日 星期三

吳映廷 計算機圖學 week08

1.這禮拜先上老師網站把之前的老師東西下載下來(dll, source, data)
2.下載openCV, 在安裝時路徑選2
3.把這三個資料夾(lib, bin, include)記好
4.開啟console project
5.下載世界地圖的圖
6.照圖做library連結
7.打上程式
#include <opencv/highgui.h>
int main()
{
IplImage * img=cvLoadImage("a.jpg");
cvNamedWindow("hello");
cvShowImage("hello", img);
cvWaitKey(0);
return 0;

}
8.就可以看到世界地圖了

9.之後自己下載week08-2,08-3編譯看看

Allen Week8

從moodle上下載 opencv-2.1.0-win32-vs2008.exe
Install option記得勾選第三個
開啟 Console application 專案
設定好路徑
並且下載 moodle上 week08-3earth.zip
路競設定好
即可完成

2017年11月6日 星期一

詠銓_Week08_Note

Class: Texture

1.先從moodle下載openCV2.1,安裝
 Note: 注意!PATH請選第3個: Add OpenCV to the system PATH for current user

2.打開codeblocks開起Console application專案


3.打入以下程式碼
#include<opencv/highgui.h>
int main()
{
    IplImage *img = cvLoadImage("earth.jpg");
    cvNamedWindow("hello opencv");
    cvShowImage("hello opencv", img);
    cvWaitKey(0);
    
    return 0;
}

4.執行,發現error,找不到 opencv/highgui.h


4.為了解決此問題,在專案點右鍵,點Build option,點選Search directories


5.分別在compiler和linker中增加C:\OpenCV2.1\include及C:\OpenCV2.1\lib


6.接著點Linker settings中增加cv210, cxcore210, 及highgui210


7.設定完後,執行如圖


 Note: 記得要有圖片檔在專案資料夾中

8.接著打開一個GLUT專案,同樣在此專案上設定上述設定,則此專案即可執行openCV的程式碼


9.接著想要做出一個會轉動的地球,首先我們重寫GLUT專案,先寫出3D圖形的基本框架。


Note:記得此專案也要如先前一樣設定openCV,且要多#include <opencv/cv.h>

10.接著準備貼圖副程式,程式碼如下:
 int myTexture(char *filename)
 {
     IplImage * img = cvLoadImage(filename); ///OpenCV讀圖
     cvCvtColor(img,img, CV_BGR2RGB); ///OpenCV轉色彩 (需要cv.h)
     glEnable(GL_TEXTURE_2D); ///1. 開啟貼圖功能
   
     GLuint id; ///準備一個 unsigned int 整數, 叫 貼圖ID
     glGenTextures(1, &id); /// 產生Generate 貼圖ID
     glBindTexture(GL_TEXTURE_2D, id); ///綁定bind 貼圖ID
     glTexParameteri(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);
     return id;
 }

11.為了能讓地球自轉,我們先準備全域變數:
 
  float angle=0;
接著準備一個timer副程式如下:
  void timer(int t)
  {
      glutTimerFunc(20, timer, 0);/// 1000 msec   50fps:20msec
      angle+=1;///隨著時間轉動角度增加
      glutPostRedisplay();
  }

12.接著初始化貼圖副程式,程式碼如下
  GLUquadric * quad;
  GLuint id;
  void myInit()
  {
      quad = gluNewQuadric(); ///用剛才宣告的quad變數,將2D座標轉到2次曲面的座標上
      id = myTexture("earth.jpg"); ///將貼圖副程式回傳的貼圖ID直送給全域變數id
  }
  Note:這個id變數可再多張貼圖的時候依照id的值用glBindTexture(GL_TEXTURE_2D, id); 綁定
  不同的id來更換貼圖。

13.而這次的display()函式為:
  void display()
  {
      glEnable(GL_DEPTH_TEST); ///要啟動 Detph Test 深度值的測試,3D顯示才正確
      glClear(GL_COLOR_BUFFER_BIT  | GL_DEPTH_BUFFER_BIT);
      glPushMatrix();
          glRotatef(90, 1,0,0);
          glRotatef(angle, 0,0,1);//依Z軸轉angle的角度,angle會隨時間增加,有自轉效果
          gluQuadricTexture(quad, 1);
          gluSphere(quad, 1, 30, 30);
      glPopMatrix();
      glFlush();
  }

14.最後完成主程式:
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("3D");

    glutDisplayFunc(display);
    glutTimerFunc(0, timer, 0);
    myInit(); ///初始化 把貼圖準備好 前面OpenCV 2行, 後面 OpenGL 9行

    glutMainLoop();
}

15.執行結果如圖