1.我最喜歡的作業
本學期上了許多東西,我最喜歡的作業就是期末專案,我們做的是紙牌遊戲,
透過視訊鏡頭可以手動將紙牌翻面並得分。
2.學到了什麼
在這個作業中,運用了老師之前上課的觀念,在視訊裡放入圖片,偵測膚色,
但也遇到了許多問題,現場光線亮度、背景顏色會影響判斷等等...
最後要判定紙牌圖案是否相同,在與組員討論並開始動手做後,
經過不斷測試及DEBUG,解決了問題,
十分開心也很有成就感。
3有什麼改變
老師讓我們自訂題目並將其完成,完成後也讓我了解原來做東西並不難,
程式也並非想像中困難,透過上課教的內容加上我們之前學的程式能力,
將其實作也能完成一個個好的作品,
老師讓我們每節上課都實作也是在累積我們的經驗,
也能透過和分組讓我們能一起完成東西,
又能增加成就感,好玩又充實。
2013年6月9日 星期日
99361121_黃彥豪_上機考心得
題目:在左右視窗分別戴上不同的皇冠
1.先把視窗分邊
cvLine(src,cvPoint(325,0),cvPoint(325,500),CV_RGB(255,0,0),3,8,0);
ps:使用的是筆電視訊鏡頭
2.讀取圖片 偵測皮膚
logoImg1=cvLoadImage("p1.jpg");
logoImg2=cvLoadImage("p2.jpg");
if (blackPixelNumber > 0) {
mouseX=blackPixelX/blackPixelNumber;
mouseY=blackPixelY/blackPixelNumber;
}
將上面兩張圖片帶入視訊
mergeImg=cvCloneImage(src);
for (int y=0; y<logoImg1->height; y++) {
uchar* ptr1=(uchar*) (logoImg1->imageData +y*logoImg1->widthStep);
uchar* ptr2=(uchar*) (mergeImg->imageData +(y+y1)*mergeImg->widthStep);
for (int x=0; x<logoImg1->width; x++) {
if(ptr1[3*(x)] < 210 && ptr1[3*(x+1)] < 210 && ptr1[3*(x+2)] < 210){
ptr2[3*(x+x1)]=ptr1[3*(x)] ;
ptr2[3*(x+x1)+1]=ptr1[3*(x)+1] ;
ptr2[3*(x+x1)+2]=ptr1[3*(x)+2] ;
}
}
}
for (int y=0; y<logoImg2->height; y++) {
uchar* ptr1=(uchar*) (logoImg2->imageData +y*logoImg2->widthStep);
uchar* ptr2=(uchar*) (mergeImg->imageData +(y+y2)*mergeImg->widthStep);
for (int x=0; x<logoImg2->width; x++) {
if(ptr1[3*(x)] < 239 && ptr1[3*(x+1)] < 239 && ptr1[3*(x+2)] < 239){
ptr2[3*(x+x2)]=ptr1[3*(x)] ;
ptr2[3*(x+x2)+1]=ptr1[3*(x)+1] ;
ptr2[3*(x+x2)+2]=ptr1[3*(x)+2] ;
}
}
}
下面兩張帶入圖片
for (int y=0; y<logoImg1->height; y++) {
uchar* ptr1=(uchar*) (logoImg1->imageData +y*logoImg1->widthStep);
uchar* ptr2=(uchar*) (mergeImg->imageData +(y+mouseY-110)*mergeImg->widthStep);
for (int x=0; x<logoImg1->width; x++) {
if(mouseX<=155)
if(ptr1[3*(x)] < 210 && ptr1[3*(x+1)] < 210 && ptr1[3*(x+2)] < 210){
ptr2[3*(x+mouseX-50)]=ptr1[3*(x)];
ptr2[3*(x+mouseX-50)+1]=ptr1[3*(x)+1];
ptr2[3*(x+mouseX-50)+2]=ptr1[3*(x)+2];
}
}
}
for (int y=0; y<logoImg2->height; y++) {
uchar* ptr1=(uchar*) (logoImg2->imageData +y*logoImg2->widthStep);
uchar* ptr2=(uchar*) (mergeImg->imageData +(y+mouseY-110)*mergeImg->widthStep);
for (int x=0; x<logoImg2->width; x++) {
if(mouseX>=165)
if(ptr1[3*(x)] < 239 && ptr1[3*(x+1)] < 239 && ptr1[3*(x+2)] < 239){
ptr2[3*(x+mouseX-50)]=ptr1[3*(x)];
ptr2[3*(x+mouseX-50)+1]=ptr1[3*(x)+1];
ptr2[3*(x+mouseX-50)+2]=ptr1[3*(x)+2];
}
}
}
心得:一開始看到題目時,心裡大概有想法,
把線分開後,如何將皇冠放進去並且使其跟
隨我們擺動便使我困惑許久,在考試後問了許多同學,
也搞懂了並順利完成這個作業。
2013年6月8日 星期六
2013年5月27日 星期一
2013年5月5日 星期日
2013年4月22日 星期一
訂閱:
文章 (Atom)











.jpg)
