1.作業要求:
請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。
2.使用環境:
Windows10
VScode + anaconda3
Python3.6.12
Opencv4.5.1
Numpy1.19.4
3.實作方法:
!程式可以自己判定要壓縮還是解壓縮
RLE Encode
(一)先讀取.bmp的header,把寬,高求出
(二)讀出圖片data後,reshape成numpy格式
(三)分別將R,G,B個別取出,然後各別用RLE的方式壓縮後組合在一起(因為簡單的圖像其rgb值通 常會相同且連續)
(四)將結果輸出成.1438結尾的檔案
RLE Decode
(一)讀入.1438檔案
(二)分別將R,G,B的RLE值讀入
(三)重新組合回numpy格式
(四)輸出.bmp檔,結果與原檔相同
4.結果展示
圖一壓縮率 = 13.9/5.66 =2.455
圖二壓縮率 = 13.9 / 9.75 = 1.425
圖三壓縮率 = 13.9/5.19 = 2.678
沒有留言:
張貼留言