2021年6月5日 星期六

s1071543 影像處理作業6

 Run-Length Based Image Compression練習


說明

附件中為三張利用將高度以色彩視覺化後的圖片。

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

部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。

執行環境

  • OS: Arch Linux x86_64
  • Editor: Visual Studio Code
  • Python: 3.7.9
  • OpenCV: 3.4.2
  • Numpy: 1.19.2

壓縮方法

  1. 讀取圖片
  2. 分割BGR
  3. 扁平化資料成一維陣列
  4. 計算RLE(Run-Length Encoding)
  5. 將長、寬、BGR的RLE結果寫入檔案

解壓縮方法

  1. 讀取壓縮檔
  2. 還原資料
  3. 分割資料
  4. 組合成BGR
  5. 寫入圖片

過程截圖

 

 


 結果


 

平均壓縮率 : (6.64 + 4.04 + 6.97) / 3 = 5.883

解壓縮驗證(SHA256)

781797f695ab9b0fa67992689b95c7ea69577e8111ed4701187ed12811aa8c47  img1.bmp
781797f695ab9b0fa67992689b95c7ea69577e8111ed4701187ed12811aa8c47  recover1.bmp

627d8e6119597a78a897560f08927da410ac63a551a532a2e8e6bd241923b3ab  img2.bmp
627d8e6119597a78a897560f08927da410ac63a551a532a2e8e6bd241923b3ab  recover2.bmp

d1fb5986bcf6059ad104779ed54c57e5ab575d5250b544049032f4874678cc15  img3.bmp
d1fb5986bcf6059ad104779ed54c57e5ab575d5250b544049032f4874678cc15  recover3.bmp

沒有留言:

張貼留言