2019年5月13日 星期一

s1053314 的作業 4

一、作業要求

利用你所學的顏色的知識 ,撰寫一個程式來偵測一張輸入照片中的皮膚區域並將其標示出 。

二、原理

HSV顏色空間:由色調(Hue)、飽和度(Saturation)、亮度(Value)三個分量構成,HSV更接近於人眼的主觀感受,可通過下圖展現出HSV顏色分布:
YCbCr顏色空間:用於影片中影像的連續處理,或者數字攝影系統中。Y是所謂的流明(Luminance)表示光的濃度且為非線性,並使用Gamma correction編碼處理。Cb和Cr是藍色和紅色的濃度偏移量成分。

三、實現步驟
  • 亮度補償:R、G、B三通道5%非線性Gamma校正
  • 顏色空間轉換:RGB顏色空間轉換到YCbCr顏色空間
  • 使用規則化作膚色分割

四、使用環境/語言

  • Windows 10
  • Spyder 
  • Python 3.7.1
  • Opencv 3.4.1


    五、特殊程式片段註解

    • cv2.cvtColor(img,cv2.COLOR_BGR2YCR_CB) //RGB顏色空間轉換到YCbCr顏色空間
    • cv2.cvtColor(img,cv2.COLOR_BGR2RGB) //BGR顏色空間轉換到RGB顏色空間
    • np.zeros //準備一個空的影像空間
    • np.hstack //將原圖與偵測膚色的圖水平方向堆疊起來
    • imwrite //將影像寫入路徑上存放
    六、環境設置

    • 將Anaconda的路徑加入的path
    • 於Anaconda cloud server中搜尋package(cmd輸入:anaconda search opencv)
    • 挑選一個符合系統的package(cmd輸入:conda install -c https://conda.anaconda.org/package名稱)
    • 下載完畢後,開啟Spyder執行程式
    七、執行結果
    • pyplot
    • 存圖
    八、參考資料

    沒有留言:

    張貼留言