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

2010年6月13日 星期日

課程回顧

一、學到什麼:
從學期初以來,做過許許多多的作業,從作業一的鏡射,做到期末專案,中間的落差感真的差很多,每堂課的作業都有不同的難度,但一旦做出來就很高興,做到後來反而滿喜歡課堂上的作業,作業就想腦經急轉彎,常常轉個觀念就能做出來了,到做其中專案時,我們想法更多了,而且隱隱約約的覺得我們真得做得到,照著直覺一步步去做,雖然還是有碰到許多問題,但很順利的都迎刃而解,直到做出來時,並且也得到同學的認同,還滿高興的。
二、最喜歡的作業:
利用
X-Projection and Y-Projection偵測頭部,做跳高比賽時,寫的最高興,就像在做腦筋急轉彎,真的很好玩。

三、建議:
有個小小心願,WEBCAN可以換成自動對焦的嗎?

HW05







利用顏色做為虛擬滑鼠,再用虛擬滑鼠做為LOGO的控制。








HW09

利用
X-Projection and Y-Projection 的數值,測出頭的最高值,與左右肩膀的邊線,畫出頭點的中心點。

  • 心得:
能夠抓到頭以後,就能抓到兩邊的肩膀,概念上都相同。

HW11&12期末PROJECT 小雞過馬路



我們這次的期中專案
把小雞過馬路改成頂在頭上玩
利用 背景偵測 和 虛擬滑鼠 的技術 來 控制小雞
這次的程式又更進階了
我們加了 VIRTUAL BUTTON START鈕
來控制 是否開始
因為剛開始會不確定小雞的位置 馬上就被撞了 QQ

還加了 被撞和贏的聲音增加樂趣
遊戲結束還會自動關閉喔~ 不用手動去按叉叉!!!

遇到的困難:
期中的時候手很賤把畫面*3倍~結果這次要套用期中的專案
的時候把畫面加大三倍 竟然碰到一堆問題 真是圈圈叉叉 大概 DEBUG一個下午吧~
乘3倍之後都改得很順沒甚麼大問題~~

未來展望:
專案發表的時候看到電流急急棒那組有背景音樂 我也好想加喔~
無奈DEBUG時間不夠還沒做出來~ 請教了她們一下!! 應該不難!!
希望虛擬滑鼠的偵測在更精準一些!!

心得:
遊戲嘛~玩得盡興就好~我覺得不再程式難不難! 而是在想法有沒有創意~~
視訊這堂課真的讓我獲益良多 想法也改變了很多 不過寫程式真的只佔15%嘛?
希望以後出去不用寫程式就可以賺錢 當那75% @@

2010年5月30日 星期日

HW08: Background Subtraction


利用HW08_2當原稿,做一些小改變,做成一個有主題的遊戲,遊戲規則只要人的動作符合綠色框框裡的動作分數就越高。



HW10 X-Projection and Y-Projection



心得:
延伸背景的加減法,利用 Y-Projection 判斷左有人頭的高度,利用X-Projection 判斷左右
比誰跳得多。




2010年5月2日 星期日

期中專題 - 小雞過馬路


組員:郭宇軒,邱弘承



動機:
有一天早上,騎車上學忽見一隻機靈的貓媽媽帶著小貓穿越馬路,沒有猶豫,馬上就決定做個小貓過馬路的小遊戲,完全沒有猶豫,於是我們不顧一切的熬夜趕工,但萬萬想不到,我們遇到的第一個瓶頸,竟然是找不到有關於貓的圖片,接著我們只好找出世界上第二會過馬路的小雞擔任主角,主題名稱也就改成了小雞過馬路。


遊戲介紹:
畫面一開始靠著感應顏色的追蹤,做出一虛擬滑鼠,由虛擬滑鼠控制小雞x,y座標值,遊戲過程中只要在不碰到汽車的情況下走到對面就算過關,相反的一旦碰到汽車畫面就會顯示GameOver。

遇到的困難:
1.畫上汽車
在畫上汽車時,由於我們是參考老師的之前的作業做修改,造成我們沒辦法抓到汽車圖片的左上角( (0,0)點 ),後來經過老師的糾正後,才糾正過來。

2.判斷碰撞
寫碰撞的時候,原本想把汽車寫成一個class,用物件化的方式寫成一個個個別的物件,原以為物件化的方法可以節省掉許多攏長的程式碼,但沒想到最後還是出了問題,物件的x,y值怎樣都無法傳進去,加上對c++的語法也不是很熟悉,到最後還是放棄了,改用判別是循序漸進的做出來。



未來展望:
原本還有加聲音檔的,但還暫時找不出問題出在哪,希望能配上聲音檔後,將project做得更完整。

感想:
剛開始做的時候原以為很困難,沒想到最後我們還是做出來了,做出來很有成就感 ,Yas!!

2010年3月28日 星期日

2010年3月22日 星期一

HW04

今天要學習的是將指定的顏色,改為使用著所想的特定顏色,
第一步:
試著將視訊上出現黑色的畫面改為紅,
藉著老師的開導我試著假設每個像素是一個
向量:PIXEL= [B,G,R]
另外,組合另一種預想塗上的顏色向量 
EX:紅色= [0,0,255]。

之間的差值的關係方程式為:
Ḏ= 開方((B- 0)^ 2 + (G- 0)^ 2 +(R - 0)^ 2)

第二步:
使用IF判斷
if (sqrt(D) <>
ptr1[3*x]=targetBlue;
ptr1[3*x+1]=targetGreen;
ptr1[3*x+2]=targetRed;
}
將目標PIXEL改為targetBlue, targetGreen, argetRed
TH1為一個門檻值

接著老師進一步要求我們借的這方法的延伸,
將感應到的指定顏色,作為塗色筆
在一張白色的畫布上作畫。

HW03



這課堂作業要求我們將視訊分成偏紅, 偏綠, 偏藍的畫面,剛開始以為這是像非常困難的任務,根本就是毫無頭緒,但經由老師的講解後,發現原來畫面是由BGR三原色的
pixel所組成,我們只要試著使用uchar* ptr 變數來抓取原圖的pixel,試著改掉代表藍綠紅的ptr2[3*x]、ptr2[3*x+1]、ptr2[3*x+2]變數就能夠將原畫面改為偏藍綠紅的畫面

插入LOGO更是變色題的大大延伸,需要使ptr1與ptr2分別代表視訊圖與LOGO圖,接著將兩變數相加,還有將 #define alpha 0.4 設為透明度。

2010年3月7日 星期日

HW02



心得:
作業二比起上一次的作業,來得複雜多了,不在是簡簡單單的鏡射,這回加上很多效果像是黑白,灰階,放大等等,方法裡頭的參數也越來越多,一時要在網路上找出使用方法還真不簡單,不過也藉著這種上課方式,慢慢得懂得如何是尋找資料,啟發式的教學方式,也有不一樣的收穫。


cvThreshold( gray, bw, 127, 255, CV_THRESH_BINARY );

cvThreshold( pImg, pImg2, 127, 255, CV_THRESH_BINARY );
將門檻值127改掉,圖像上的,顏色會做出改變

7. How many colors in the pImg2 image?
總共有8種
因為 B=(0or255)
G=(0or255)
R=(0or255)
共8種

re = cvCreateImage(cvSize(frame->width*3.14,frame->height*3.14), IPL_DEPTH_8U, 3);

要縮放影像時,需要圖像申請空間成原來的3.14倍

2010年2月28日 星期日

HW01: Capture video from WebCam





心得:
第一次接觸到處到Webcan
並沒有自己想上來得困難
希望是門輕鬆的課"
cvCreateCameraCapture() 偵測視訊裝置
cvCaptureFromCAM() 也是用於偵測視訊
cvWaitKey(20) 是表示擷取畫面的間隔










心得:
利用FcvFlip(frame,frame,1)
就能做出鏡射