s1083520 作業5

 

 1112 Digital Image Processing Assignment #5

主題: 膚色偵測Skin Color Detection

題目敘述

利用你所學的 顏色(Color)的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚
區域並將其標示出。(請用附件中的三張照片做測試)
Write a program that detect skin color from an image.

開發環境

OS: Windows 10
Editor: Visual Studio Code
Compiler: GCC - 12.2.0(MinGW-W64)
Language: C++
Package: OpenCV - 4.7.0

實作方法

膚色偵測常使用的方式有2種
第一種是基於RGB的膚色偵測
第二種是YCrCb的膚色偵測

這個作業中,我選擇使用YCrCb作為基礎進行實作,並且利用Otsu法進行閥值分割
其中,Y代表亮度,Cr代表光源中的紅色分量,Cb代表光源中的藍色分量

實作步驟如下
1. 先將圖片讀入後透過cvtColor將圖片從RGB color space轉換到YCrCb color space
2. 利用split函數將轉換到YCrCb color space的圖片提取出Y、Cr以及Cb分別的圖像
    此步驟主要為提取Cr的圖像
3. 利用threshold函數做Otsu自二值化閥值分割處理,得到的會是一個黑白的mask
4. 利用上個步驟得到的mask,將原圖像使用copyTo到dst得到最後的結果

實作結果

IMG_1

IMG_2

IMG_3





留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1