1. 作業題目:Run-Length Based Image Compression
請設計一個基於Run-Length的壓縮方法,對圖檔作無失真壓縮後儲存成新檔案。
2. 開發環境&語言:
- macOS Big Sur 11.2.3
- Visual Studio Studio 2019
- OpenCV - 4.5.1
- python 3.9.4
- numpy-1.20.1
3. 說明:
- 讀取:imread('bmp檔')
- 取出width, height, size
- 透過cv2.spilt( ) 得到 (B, G, R ) 三通道
- 再reshape成一維陣列
- R,G,B 各個都要用RLE的方式去壓縮
- 再用np.concatenate( )去合併RLE壓縮完的R,G,B
- 再寫入img_.bmp.學號的空白檔案裡
- 用本來寫RLE的方式倒回去寫
- 再創一個2維陣列填入
- 再以img_.學號.bmp的檔名輸出
4.輸出:
壓縮率:14665254/3412083=3.85311036
平均壓縮率:(3.85311036+2.19797104+4.29803554) / 3 ≈ 3.45
沒有留言:
張貼留言