顯示具有 98360313_杜佳鴻 標籤的文章。 顯示所有文章
顯示具有 98360313_杜佳鴻 標籤的文章。 顯示所有文章

2013年6月9日 星期日

課程回顧

1.最喜歡的作業?

      老實說,這門課所做的作業我都感到非常的新鮮有趣,若是硬要挑一個的話,我想那就是水果盤。這算是我真真正正做出來的一個"完整"的遊戲,原本期中專案做的遙控車是我心目中首選,但因為遇到太多困難,最終沒有完成,是我滿遺憾的地方。

2.學到了甚麼?
     我從以前就很喜歡動手做東西,但自從選擇了這個系,幾乎都是在電腦上作業;這門課讓我又重回了以前除了要思考自己想要做甚麼,並且要"動手去做"的時光,我覺得很開心。這門課的前期讓我學到了透過一小塊板子,我可以做出幾乎"自動化"的有趣小玩意,並且只需要幾行程式碼,就可以達到我想要看的成果;後半段的視訊教學,我學到了很多簡單的特效,並且學會了將其結合,做出一個小遊戲,真的滿有成就感的! 而最大的收穫,是讓我對程式寫坐在一次的有了興趣並且有點小小的信心!

3.上完這門課 有沒有甚麼改變?
    如同我前面所述,我對程式寫作原本感到很痛苦,覺得很無趣;但經過這門課,尤其是我手中做出了讓我感到有趣的小玩意兒,我瞬間覺得程式寫作也沒有那麼痛苦了? 我覺得這對我很重要! 也謝謝這門課以及教授,讓我有了心態的轉變。

Arduino---LED燈光秀


Arduino---簡易小鋼琴


2013年6月5日 星期三

98360313_上機考心得



本次的上機考為自教視訊程式以來所有課程的應用。基本上沒甚麼難度,花最久時間的部分就是去背---其實是我忘了怎麼寫,後來請教同學得知是透明人那堂課所教的,於是就去參考我那時候的作業程式碼。

基本上去背的程式碼我是這樣寫的:
 if(ptr1[3*(x)]<252 && ptr1[3*(x)+1]<252 && ptr1[3*(x)+2]<252){   
                      ptr2[3*(x+150)]=ptr1[3*(x)]; 
                      ptr2[3*(x+150)+1]=ptr1[3*(x)+1]; 
                      ptr2[3*(x+150)+2]=ptr1[3*(x)+2];  
                }

此判斷為當圖片顏色為不是"白色"時,將其非白顏色所構成的圖形"貼"到視訊上,如此完成了去背的部分。

另一個稍微卡關的地方為"膚色的判斷"。因為我的程式碼是以"臉的膚色"為依據,判斷臉出現在x>or<320時(因為使用視訊為640*480),會依據狀況做出變動。

程式碼如下:

if( mouseX <= 320) {
            for (int y=0; y<logoImg1->height; y++) {
                uchar* ptr1=(uchar*) (logoImg1->imageData +y*logoImg1->widthStep);
                uchar* ptr2=(uchar*) (src->imageData +(y+mouseY-230)*src->widthStep); 
                for (int x=0; x<logoImg1->width; x++) {
                    if(ptr1[3*(x)]<252 && ptr1[3*(x)+1]<252 && ptr1[3*(x)+2]<252){   
                      ptr2[3*(x+mouseX-150)]=ptr1[3*(x)]; 
                      ptr2[3*(x+mouseX-150)+1]=ptr1[3*(x)+1]; 
                      ptr2[3*(x+mouseX-150)+2]=ptr1[3*(x)+2];  
                }
                }
            }
        }

if( mouseX >= 320){
            for (int y=0; y<logoImg2->height; y++) {
                uchar* ptr1=(uchar*) (logoImg2->imageData +y*logoImg2->widthStep);
                uchar* ptr2=(uchar*) (src->imageData +(y+mouseY-230)*src->widthStep);
                  
                for (int x=0; x<logoImg1->width; x++) {
                if(ptr1[3*(x)]<250 && ptr1[3*(x)+1]<250 && ptr1[3*(x)+2]<250){   
                      ptr2[3*(x+mouseX-90)]=ptr1[3*(x)]; 
                      ptr2[3*(x+mouseX-90)+1]=ptr1[3*(x)+1]; 
                      ptr2[3*(x+mouseX-90)+2]=ptr1[3*(x)+2];  
                }
                }
            }
        }

這兩部分我認為是此次考試重點所在,雖說在考試當中沒能來的及完成,但回家進一步的寫出來,總體來說還是非常有收穫的!


2013年5月6日 星期一

HW4_98360313_杜佳鴻

這次的視訊效果還滿有趣的,比較可惜的地方是我透明化這個步驟是失敗的,最終只能蓋個圖片透視過去,無法達到與環境同化的效果,我覺得滿可惜的

2013年4月29日 星期一

98360313_杜佳鴻_HW3_相框

今天的相框,過程中所遇的問題還滿白癡的,相框大小不符合規定......,程式無法判別,這問題我竟然卡了很久,頗無奈。
其實有一個resize的做法直接可轉相框的大小,但這方法我不會用,只能再研究看看了。
今天的課讓我想到我每次看別人直播時,別人的影像都會有些東西"蓋住"頭或者全部影像,沒想到今天做的就是這個,做完今天這個作業,個人是想說能否加入動畫或是"按鈕"可點選,這還滿有趣的。

2013年4月22日 星期一

自畫像

此次作業可以說是遇到一些困難= =
程式碼莫名會造成當機狀態 結果寫的位置錯了
在中間還有遇到一些突發狀況
例如:
左下和右上那張
我這邊想了有點久 程式碼也沒錯啊?
結果有段根本不需要
我根本多此一舉(苦笑)
這次算是滿有趣的
但卡很久真的令人非常地不。爽(笑)
玩完這個,突然有個想法
這東西能不能做到"兩面鏡子互相面對,映出無限個相同影像"的效果?
改天有空來研究看看