s1080706 Homework #5

學號: s1080706 姓名: 陳昕妤

主題: Run-Length Based Image Compression 影像壓縮練習
專案目標:
將指定圖片透過自己設計的基於Run-length的方法進行無失真壓縮,壓縮後的檔案存成txt檔,再將原始檔案大小除以壓縮後的檔案(txt)大小,計算壓縮率,最後再計算平均壓縮率。

開發平台: Windows 11, Visual Studio Code, OpenCV 4.90, Python 3.11

程式架構與功能說明:
1. 執行程式時,會直接開起3張圖片,並對圖片的進行run-length壓縮。
 
2. 在先設計一個函式將圖片像素值攤開成一維array。再分別將RGB數值分開,得到一維的R、G、B的array。 

3. 將array透過run-length方法計算,並得到特殊字串,以16進制表示,前面表示一個value值出現的次數,後最後兩位表示value。

4. 再將圖片的長寬以及三個通道的特殊字串存入txt。

5. 可以看到txt檔案的輸出結果較原始檔案小。
    

6. 接著,將txt檔案讀入,並透過設計的函式將特殊字串的count及value數值分離並還原成10進制且經過run-length處理過的array。
 
7. 再將合併三者並展開回原始的一維array,以還原圖片。 還原的圖片無損,如圖所示。
    




8. 最後,將檔案進行壓縮率計算並輸出結果。
 


 

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6