作業說明:
Run-Length
Based Image Compression練習
請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression
ratio)。
操作環境:
l
作業系統 : Windows10
l
編譯軟體 : Jupyter
Notebook
l
使用語言 : Python
/ OpenCV 4.5.1
實作方法:
1. 讀取.bmp檔案
2. 將圖片RGB三通道分離
3. RGB分別進行Run-Length壓縮
4. 將RLE壓縮結果存至.dat檔案
Decompress:
1. 讀取壓縮完成之.dat檔案
2. 將資料還原長、寬、RGB三通道
3. 三個channel各自復原
4. 將RGB解壓縮後寫到.bmp檔
執行結果:
img1原圖(.bmp)、壓縮(.dat)、解壓縮(.bmp)檔案大小:
壓縮比:2,157kb / 14,322kb *100% = 15%
img1原圖(.bmp)與解壓縮(.bmp)結果:
img2原圖(.bmp)、壓縮(.dat)、解壓縮(.bmp)檔案大小:
壓縮比:3,544kb / 14,322kb *100% = 24.7%
img2原圖(.bmp)與解壓縮(.bmp)結果:
img3原圖(.bmp)、壓縮(.dat)、解壓縮(.bmp)檔案大小:
壓縮比:2,056kb / 14,322kb *100% = 14.3%
img3原圖(.bmp)與解壓縮(.bmp)結果:
壓縮檔格式:.dat
平均壓縮率:(15% + 24.7% +14.3%) / 3 = 18%
沒有留言:
張貼留言