- 作業說明:
- 請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。
- 使用環境:
- Anaconda
- python 3.8.8
- opencv 4.5.2
- numpy 1.20
- 實作方法:
- 壓縮:
- 將B,G,R分開
- 分別以reshape()成一行
- 使用RLE方式對B,G,R做壓縮
- 將壓縮好的資料以{height,width,{數量1,字元1},{數量2,字元2}...}的方式儲存到一個檔案(ex:img1.bmp.encode)
- 解壓縮:
- 讀取height,width和B,G,R資料
- 將B,G,R個別reshape成(height,width)的array
- 以cv2.merge()結合B,G,R
- cv2.imshow得出原圖
- 執行結果:
- 平均壓縮率:42% + 3% + 45% = 30%
沒有留言:
張貼留言