2018年5月11日 星期五

Week 10 張宇涵

------------------------------------------------------------------------------------------
Week11 2018/05/04

(1) 主題 : 貼圖
(2) 實做 : OpenCV 讀圖、秀圖
(3) 實做 : OpenGL 貼圖
----------------------------------------------------------------------------------------------
Class practice1 試試看別人的程式如何動Texture.exe

    下載 data.zip, windows.zip, glut32.dll 三個檔案
2. 把相對應的檔案放在對應的位置
3. 開啟Texture.exe,開啟後為下圖 : 


4.  glColor4f ()  -->可調整燈光的顏色
     glTexCoord2f() --> 貼圖座標
     glVertex3f() --> 頂點座標




----------------------------------------------------------------------------------------------
Class practice2 在專案內讀入圖檔

1. 先從 moodle 下載 OpenCV-2.1.0-win32-vs2008.exe
2. 執行剛剛下載的 OpenCV-2.1.0-win32-vs2008.exe,在執行以下的步驟要記得是點擊第二個,將 OpenCV 加到快速路徑


3. 新增一個 glut 專案,在主程式裡增加以下程式碼:

#include <opencv/highgui.h>///(1)呼叫外掛OpenCV的High GUI
IplImage * img = NULL;///(2)宣告變數指數
int main(int argc, char *argv[])
{
    img = cvLoadImage("image.jpg");///(3)OpenCV讀入圖檔
    glutInit(&argc, argv);
    glutInitWindowSize(640,480);


但執行後會發現無法執行,因需要置入OpenCV的連結

4. 完成以下的操作:

     a. 複製以下的連結
     b. 在專案黨上面按下右鍵找到 "Build options..."
     c. 跟著以下的步驟,貼上剛剛複製的連結
     d. 複製上面 lib 的連結,以下方的步驟貼在相對應的位置( Linker裡)
     e. 完成下列步驟 ,加入 cv210, cxcore210, highgui210

5. 再次執行後會得到下列的圖 :


6. 加入程式,第一個參數為視窗名稱,第二個為圖檔

#include <opencv/highgui.h>///(1)呼叫外掛OpenCV的High GUI

IplImage * img = NULL;///(2)宣告變數指數

int main(int argc, char *argv[])
{
    img = cvLoadImage("image.jpg");///(3)OpenCV讀入圖檔
    cvShowImage("week10",img);///(4)秀出圖檔



7. 下載一張圖片存入  C:\Users\asus-user\Desktop\freeglut\bin 裡,並把圖檔改名為image


8. 再次執行程式為下圖 :


----------------------------------------------------------------------------------------------
Class practice3 執行會動的地球

1. 先從 moodle 下載 myEarth.zip 
2. 更改我們的工作目錄


#include <opencv/highgui.h>///(1)呼叫外掛,opencv 的 High GUI
#include <opencv/cv.h>
#include <GL/glut.h>
#include <stdio.h>
GLUquadric* quad;
GLuint id;
float angle=0;
static void display(void)
{
    glClear(GL_DEPTH_TEST);
    glClear(GL_DEPTH_TEST | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
        glRotated(90,1,0,0);
         glRotated(angle,0,0,1);
        glTranslated(-2.4,1.2,-6);
        gluQuadricTexture(quad,1);
        gluSphere(quad,1,30,30);

    glPopMatrix();
    glFlush();
}























沒有留言:

張貼留言