2012年10月25日 星期四

作業2-3:第1組

Source Image:


圖1:素材(帽子)


圖2:素材(人物)

Result Image:



圖3:遮罩(膚色區域)


圖4:使用遮罩過濾後的膚色


圖5:將素材加入頭上的結果


說明:

事先準備二張圖片,一張為預備要放置在頭上的物件(圖1),而另一張為人臉的影像(圖2)。
將人臉影像先經過處理,找出臉部的區域,並估算放置物件的點座標,再將影像作合併。

程式:

在本次實驗中,過濾人臉影像的部分,是先將圖片轉換為YCrCb色彩空間,並抓取
(0,144,97) 到 (255,176,142) 這個範圍的色彩,而執行這項動作所使用的函式為opencv
內建的cvInRangeS()。在擷取到膚色區域後,抓取頭頂上點的方式,是從最上方從左
至右開始偵測,記錄第一個碰到的膚色點。在之後合併時,以該點當作中心做處理。

但要注意的是圖片大小的部分,若圖片太大或太小,會造成結果不如預期。故在處理
之前必須要先做調整大小的動作。而調整大小事使用cvResize()這個函式,實驗中將大
小調整的方式是,將物件影像調整為人臉影像的1/3,再進行處理。

而合併的時候,是使用迴圈,逐一像素進行處理。處理時,判斷物件影像的像素點是
否為白色,若是白色則擷取人臉影像的部分,反之則擷取帽子的像素顏色。

而結果圖形會如圖3,圖4,圖5。

PS. cvResize(IplImage*,IplImage*) 函式中是放置二張IplImage結構,會將大小進行調整,
   但必須要有相同的通道數。


沒有留言:

張貼留言