作業說明:
附件中為三張利用將高度以色彩視覺化後的圖片。
請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。
環境/語言:
PyCharm 2019.3.3
Window 10
Python 3.6
實作方法:
壓縮:
1. 先讀取bmp檔的width和height,並儲存起來
2. 將RGB通道分離,reshape成1D
3. 做RLE,儲存為[重複的值1,重複次數1,重複的值2,重複次數2, …]
4. 儲存成.1648檔
解壓縮:
1. Open讀檔
2. 將檔案內容還原成RGB三個分別的一維陣列
3. 將RGB按照原圖 width,height reshape 成 2D array
4. 再將RGB merge
執行結果:
3個影像平均壓縮率: (58+97+55)/ 3 = 70%
沒有留言:
張貼留言