s1061402
林廷瑜 影像處理作業4
1.
作業內容說明
輸入圖片路徑後利用所學的顏色知識及技術將圖片內的皮膚區域找出並偵測。
2.
開發環境
Windows10
Visual Studio 2017 c++
Opencv4.5.1 vc15
3.
操作方式
輸入圖片的路徑及名稱,便會出現一張原圖以及把非膚色的部分塗黑的結果圖。
4.
程式說明
除了輸入的圖片在建立三個Mat,分別為輸出結果result、負責擋住非膚色區域的mask,以及負責轉成YCrCb的temp。
首先用cvtColor()將temp成為原圖的YCrCb數值,再將要的CrCb數值用at取出,再用迴圈將每一個位置一一判斷是否符合設定的範圍,不符合就將mask那個位置給塗黑,最後把原圖跟mask用copyTo()結合到result。
5.
執行結果
將Cr介於140到175
將Cr介於143到175
從上兩張可以看到如果為了減少非膚色區域容易導致其他膚色區域判斷失準
(像是把沙灘的部分減少會讓黑人的膚色判斷容易失敗)
範例2原圖
範例2結果
光線、皺紋......等都容易影響輸出結果
沒有留言:
張貼留言