s1081429 作業6
主題:Run-Length Based Image Compression 練習
作業說明
附件中為三張利用將晶片高度以色彩視覺化後的圖片。
請設計一個基於 Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。
開發環境:
- Windows11
- PyCharm
- Python 3.9
- opencv_python-4.70.72-cp37
- numpy-1.24.2-cp39
程式說明:
1. 定義run_length_encode函數
2. 定義compress_image函數
使用 imread() 讀入圖像,並透過split()拆分b,g,r三個通道,並將各通道壓縮並編碼為Run-Length
- 接著,將壓縮數據寫入壓縮檔案中。
- 最後,計算原始圖像的大小和壓縮後檔案的大小,並返回兩者的值。
執行壓縮並計算壓縮率,並輸出在終端機中
執行結果:
img1從14332KB壓縮到6843KB,壓縮率為209.29%
img2從14322KB壓縮到11729KB,壓縮率為122.11%
img3從14322KB壓縮到6318KB,壓縮率為226.68%
相加除3後得平均壓縮率為186.03%
終端機輸出結果:
留言
張貼留言