2021年6月4日 星期五

s1071523 影像處理作業6

作業說明:

請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。

開發環境:

  • Windows 10
  • Visual Studio Code
  • Python 3.8.5
  • OpenCV 4.4.0

實作:

  1. header資訊讀取出來
  2. 將所有pixel值存放在list
  3. 讓每一pixelRGB分別與前一pixelRGB比較,用三個list儲存各pixelRGB分布
  4. 分別用maxRmaxGmaxB儲存最大的數量
  5. bytesRbytesGbytesB算出至少需多少bytes儲存數字
  6. 存檔時,用.to_bytes(bytesR)將各顏色數量轉成對應的byte數儲存
  7. 壓縮檔案儲存為imgx_compress.bin

 執行結果:

圖一原圖

圖一解壓縮後結果圖

圖二原圖

圖二解壓縮後結果圖

圖三原圖

圖三解壓縮後結果圖


圖一壓縮率 : 14322 / 4168 = 3.436

圖二壓縮率 : 14322 / 5369 = 2.667

圖三壓縮率 : 14322 / 3982 = 3.596

平均壓縮率 : (3.436 + 2.667 + 3.596) / 3 = 3.233

 

沒有留言:

張貼留言