顯示具有 99360870_張容嘉 標籤的文章。 顯示所有文章
顯示具有 99360870_張容嘉 標籤的文章。 顯示所有文章

2013年6月9日 星期日

99360870_張容嘉_課程回顧

1. What is your favorite homework?
我最喜歡的作品是用arduino接LED,雖然接線接到讓我眼花撩亂,但是最後完成的時候,很開心,畢竟是自己動手做出來而且較像樣的第一個作品,能夠動手做自己喜歡的效果,程式內容也不會太複雜,喜悅!!
2. What did you learn in this course?
arduino之外,skin detection 是我學到更不一樣的東西,藉由視偵測訊配合程式,一開始真得一頭霧水,為什麼可以?  這堂課,做了,才是自己的,你會知道不能放棄,因為做出的成就感,只有自己最知道。
3. What did you change after this course?
對於程式寫作不是我的強項,甚至悲觀地認為我之後不會走這方面的,只是還有更多我不知道的方向,我還沒有發現而已,讓我增加的一些動力,對於程式硬體應用的興趣,不再覺得,這資工系讀的很無趣。

LED SHOW 之 小綠人

期末考上機考


題目: 在左右視窗可以分別戴上不同的皇冠
第一步將視窗分邊,不是甚麼大問題
cvLine(mergeImg,cvPoint(325,0),cvPoint(325,500),CV_RGB(255,0,0),3,8,0);

圖片資訊 是將圖片讀取,將白色的部分去除,放上視窗方便確認皇冠有沒有帶錯
pic1=cvLoadImage("p1.jpg");
pic2=cvLoadImage("p2.jpg");

for (int y=0; y<logoImg1->height; y++) {
            uchar* ptr1=(uchar*) (pic1->imageData +y*pic1->widthStep);
            uchar* ptr2=(uchar*) (mergeImg->imageData +y*mergeImg->widthStep);
            uchar* ptr3=(uchar*) (pic2->imageData +y*pic2->widthStep);
           for (int x=0; x<logoImg1->width; x++) {
                            if(ptr1[3*x]>=0 && ptr1[3*x]<250)
                            {                            //圖片非白色的部份放到視訊中
                                ptr2[3*(x+162)]=ptr1[3*(x)];
                                ptr2[3*(x+162)+1]=ptr1[3*(x)+1];               //圖片加入視訊
                                ptr2[3*(x+162)+2]=ptr1[3*(x)+2];
DEBUG的部分
我沒有辦法正常偵測皮膚顏色進而移動皇冠
最後才加上皮膚偵測,和紅十字的當作指標
for (int y=0; y<src->height; y++) {
            uchar* ptr1=(uchar*) (grey->imageData +y*grey->widthStep);
         for (int x=0; x<grey->width; x++) {
             if(ptr1[x]==255)  {
                   PointNumber++;
                   PointX+=x;
                   PointY+=y;
                   }
             }
         }

             if (PointNumber>0) {
                mouseX=(int)(PointX/PointNumber);
                mouseY=(int)(PointY/PointNumber);
                }
                cvLine(mergeImg,cvPoint(mouseX-10,mouseY),cvPoint(mouseX+10,mouseY),CV_RGB(255,0,0),2,8,0);
                cvLine(mergeImg,cvPoint(mouseX,mouseY-10),cvPoint(mouseX,mouseY+10),CV_RGB(255,0,0),2,8,0);

為了增加視訊辨識度 還把枕頭套拿來當背景
發現背後的牆壁會影響視訊偵測的品質。

心得:

經過這次皮膚偵測應用上,一個程式他是死的,你要怎麼去用不同的方式去修正你自己的程式,出來的結果一樣,但是裏頭有自己對於這程式的看法,和其他人交流,進一步改正自己錯誤的想法,吸收新的知識!