s1101406 Homework #4
1122 Digital Image Processing Assignment #4
- 學號: s1101406 姓名: 徐宇昕
- 主題: 膚色偵測 Skin Color Detection 利用所學習顏色(Color)的知識與技術,撰寫一個程式來偵測照片中的皮膚顏色區域並將其標示出。使用附件中的 6 張照片及膚色標準答案(Ground Truth)做測試,並呈現所設計膚色偵測方法執行結果的 IOU(Intersection Over Union)數值(每張圖片值及所有 6 張圖片平均值)。 IOU = (你的方法所計算出的膚色區域像素) and(膚色標準答案區域像素) / (你的方法所計算出的膚色區域像素) or (膚色標準答案區域像素)
- 開發環境: Microsoft Windows 11, Visual Studio 2022, Opencv 4.90, C++
- 程式架構與說明:
- 抑制 libpng 的警告訊息。
- 用迴圈跑各個圖像文件名數組,每次處理兩個圖像(原圖和答案圖)。
- 讀取圖像並確認是否成功讀取。
- 將圖像轉換為 HSV 和 YCrCb 色彩空間,並根據範圍提取皮膚區域的二值化。
- 將兩個二值化進行位元運算合併為全局遮罩。
- 顯示原始圖像、答案圖像和結果圖像。
- 定義函數 calculateIOU:此函數用於計算兩個二值化遮罩之間的交集比聯集(IOU)。。
- 將遮罩轉換為 CV_8U 類型。
- 通過位元運算計算遮罩的交集和聯集。
- 計算位元運算交集和聯集圖像中所有像素值的總和。
- 計算 IOU 並返回比例值。
- 顯示結果。
- 累加 IOU 以計算平均 IOU。
- 最後顯示平均 IOU。
- 圖片補充:
留言
張貼留言