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
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得到最後的結果
留言
張貼留言