2021年6月6日 星期日

s1071527 影像處理作業6

1. 作業說明:  

Run-Length Based Image Compression練習

附件中為三張利用將高度以色彩視覺化後的圖片。 請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)

2. 作業環境、語言:

Windows 10 + PyCharm Community Edition 2020.3 x64 + OpenCV4.5.1, python 3.8

 

3. 方法:

        A. 壓縮:

         (1) 讀取圖片,取得圖片大小&BGR三個channel(split)

         (2) 調整陣列(2D  to 1D)

         (2) BGR三個channel值分別做RLE演算法壓縮

         (3) 壓縮完的BGR寫入.npz

        B. 解壓縮

         (4) 讀取.npz檔、取得三個被壓縮的BGR

         (5) 用逆向的RLE還原本來的BGR

         (6) 調整BGR陣列大小(reshape())

         (7) 合併三個channel後寫出圖片

 

4. 執行結果:

img1.bmp & img1_RLE.bmp(解壓縮後圖片)



Img2.bmp & img2_RLE.bmp(解壓縮後圖片)



Img3.bmp & img3_RLE.bmp(解壓縮後圖片)

壓縮率:

13.9/8.14 = 1.7076167076167



13.9/13.5 = 1.0296296296296



13.9/7.77 = 1.7889317889317



平均壓縮率 = (13.9/8.14 + 13.9/13.5 + 13.9/7.77)/3 = 1.5087260420593

沒有留言:

張貼留言