2013年1月5日 星期六

期末project,第六組

題目:復仇者聯盟之角色扮演
介紹:藉由視訊鏡頭抓到人臉,程式裡面有三個面具,分別為蝙蝠俠、蜘蛛人、美國隊長,利用滑鼠,選擇所想要戴的面具,就可以將自己換成所想要的角色。

程式部分說明:


滑鼠(int event, int x, int y, int flag, void* param)
{
If(判斷滑鼠位置){
if(判斷按鍵狀態){
讀入對應的選單圖片;
}
}
}
畫選單介面()
{
    cvRectangle(img,cvPoint(10   ,370),cvPoint(100,470),cvScalar(0,0,r1),3);
    cvRectangle(img,cvPoint(105 ,370),cvPoint(200,470),cvScalar(0,0,r2),3);
    cvRectangle(img,cvPoint(205 ,370),cvPoint(280,470),cvScalar(0,0,r3),3);
}
面具圖片
cvRectangle
(img,cvPoint(10,370),cvPoint(100,470),cvScalar(0,255,255),3);
cvSetImageROI
(img, cvRect(center.x-130,center.y-200,250,250));
cvResize(mask1,img);
cvSetImageROI(img, cvRect(0,0,800,800));

主函式
{
開視訊;
載入人臉分類器;
讀入面具圖片;
畫選單介面();
滑鼠事件();
}

截圖:

















影片連結: http://www.youtube.com/watch?v=vacI2-MW-sI&feature=youtu.be

問題與討論:
在這個期末作業中,雖然面具可以成功地跟到人的臉,但是面具的圖片,在Open CV中還沒能做到去背的效果。 未來要研究出利用遮罩的方式,分別將每個圖片去背,讓面具更具真實性。而且目前圖片的大小是固定的,無法依照不同人臉的大小,或是距離鏡頭的遠近作縮放處理,值得研究討論。

沒有留言:

張貼留言