2021年6月6日 星期日

s1061439 影像處理作業6

作業說明

請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)

操作環境

Windows 10

Python 3.8.5

openCV 4.5.1

matplotlib 3.4.1


實作方法

RLE Encode
  • 讀取照片
  • 利用split將RGB通道各別取出
  • 以RLE方式壓縮,分別處理每一個通道裡面的值 (e.g. 0002335 就要換成 30122315 )
  • 將圖片的圖片大小、長、寬、channel及壓縮結果合併為一個list
  • 將一維的list寫入bin file中
RLE Decode
  • 讀檔
  • 將檔案復原成一個一維的list
  • 將list的資料還原成圖片大小、長、寬、channel及R通道、G通道、B通道等資料
  • 利用merge合併RGB通道

執行結果

img1.bmp解壓縮還原後

img1壓縮率 = (4.08/13.9)*100% = 29.35%


img2.bmp解壓縮還原後

img2壓縮率 = (6.80/13.9)*100% = 48.92%


img3.bmp解壓縮還原後

img3壓縮率 = (3.90/13.9)*100% = 28.05%


平均壓縮率 = ((4.08+6.80+3.90)/13.9*3)*100% = 35.44%














沒有留言:

張貼留言