2021年5月16日 星期日

s1071431的作業4

 作業說明:將照片輸入於程式中,檢查出照片中人物的皮膚。


執行環境:windows10、python3.8.8、opencv-python==4.5.1.48、numpy==1.20.1


實作過程:

先將圖片讀入,並且將照片轉換成兩種不同的color space一個為HSV,另一個為YCrCb

,接著分別處理兩個不同色域中的圖片,其中HSV的片段為


H的判斷範圍約為0~42因為陣列儲存為uint8(範圍為0~255),所以轉換過後為圖中樣子,S範圍為 0.23~0.68。將偵測到的皮膚改為綠色。

再來處理YCrCb色域圖片,其程式碼片段為


Cr範圍為 135~180,Cb範圍為85~135。將偵測的皮膚改為紅色。


實作結果:

原始照片

HSV色域處理過後的照片


YCrCb色域處理過後的照片

分析: 

HSV 處理中,判斷式有些小漏偵測的皮膚,但與另一張相比偵測錯誤的範圍看起來比較少,因為可以先看到皮膚的大概範圍所以有設定在超出某個範圍時就不做判斷處理,以免誤判沙灘為皮膚,誤判沙灘為皮膚是因為,沙灘與某些皮膚顏色過於相近,導致無法過濾。

YCrCb處理中,偵測皮膚幾乎都有覆蓋到,但沙灘卻被誤判為皮膚的很嚴重。

判斷式調整過後最好的版本


 

 







沒有留言:

張貼留言