發表文章

目前顯示的是有「1091442」標籤的文章

1091442 homework#5

圖片
學號: 1091442                            姓名:李衍一   主題 :  Run-Length Based Image Compression 影像壓縮練習     設計思路: 本次作業參考了 Tita’s Blog 的 影像處理小白(六): Run-Length Encoding 壓縮圖片 這篇文章中的做法,將連續數值的像素其值與連續數量組成字串,並寫入 .dat 檔內。讀取 dat 檔時再按照讀取到的數值與連續數量依次回填,即可完整復原圖像。   程式解析: 設置視窗名稱、壓縮檔名稱與平均壓縮率。 ratio_calculate 函式會取得原圖檔和壓縮檔的檔案大小,通過相除計算出單張圖片的壓縮率。 Img_compressed 函式的目的是壓縮檔案。首先讀入圖片,將圖片的長與寬以 write() 函式寫入檔案。 若直接檢查 RGB 整體的值是否重複,可能因某部分值不同而將其分開儲存。大幅減少壓縮效率。在這裡可以將圖片的 R 、 G 、 B 通道分開,一個一個計算重複。對於每個像素檢查與前一個像素是否相同,若相同則累積像素計數增加、不同則將當前像素值及累積像素計數寫入文件,重新設置像素檢驗點重新計數。 在全部檢查完後將剩餘像素也一併寫入,回傳檔案。 接著是將 dat 檔復原成圖片的 unsealed 函式。從文件讀入圖片長寬後建立三個通道的陣列。 分別對三個通道復原。在每個通道內兩個兩個值讀取,把像素值放入累積像素數量的座標內,復原出 R 、 G 、 B 三個通道的圖。 將 RGB 通道合併,即可得到完整復原圖。復原圖片回傳至主程式。 此為主程式部分。將圖片壓縮、壓縮率計算、解壓縮分別對三張圖片實作,再將壓縮率相加除以圖片張數即可得到平均壓縮率。   成果展示: 平均壓縮率: 1.612717797...

1091442 homework#4

圖片
學號: 1091442                            姓名:李衍一   主題 :  傅立葉轉換與影像復原處理     設計思路: 本次作業在論文 Human Skin Detection Using RGB, HSV and YCbCr Color Models 使用的膚色辨識法上稍加改動,實作出了可透過多種色彩空間分析出膚色像素區域的程式,並把分析結果和圖片的 ground truth 做 IoU 運算,求得程式的正確率。   程式解析: 先後選擇圖片及圖片的 並傳入 ground truth 後 將圖片分 別轉換成 HSI 及 RGBA 空間,再從 RGB 中使用論文提及的公式運算出 YCbCr 色彩空間的數值。將每一格像素以三種不同色彩空間分別作 條件判斷,以分析出膚色像素所在區域製成遮罩。 得到遮罩之後透過對遮罩與 ground truth 進行邏輯運算取得交集圖與聯集圖,轉換成數值後將交集除以聯集即可得到準確率。   成果展示: 1. IoU:0.6054832076764908 2. IoU:0.8827571351642434 3. IoU:0.678703784761738 4. IoU:0.7128458186781458 5. IoU:0.7771909432628452 6.   IoU:0.6433137305037074 成果反省: 本次作業的流程和論文提供的流程有些許不一樣,把每個像素做一次色彩空間轉換變成轉換出色彩空間的圖後再一個一個像素去跑,主要是在程式撰寫上會比較省力,也比較直觀。 另外有件事情值得一提,在設置 HSI 和 RGBA 的條件判斷時都還能正常辨識,在加入 YCbCr 的條件後遮罩卻全部都被過濾掉了。一開始是拿 Opencv 的公式直接將圖轉換成 YCbCr 空間來用,徹查論文後才發現有...