作業說明:
附件中為三張利用將高度以色彩視覺化後的圖片。請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
Coding環境:
- Windows 10 20H2
- Anaconda 3.18.11
- Python 3.9.1
- OpenCV 4.5.1
程式說明:
使用RLE進行圖片壓縮
1. 使用者使用python s1071546_hw6.py -i <欲壓縮的影像檔名>來進行壓縮
2. 使用open()將檔案載入並使用struct.unpack做binary檔案的讀取,並依據RGB分開儲存
3. 使用np.reshape()將讀取進來的pixel排成影像的格式(width,height,channel)
4. 使用cv2.flip()將讀取進來的圖片上顛倒
5. 使用RLE壓縮連續且相同的數值
6. 寫成dat檔後再次讀入,並進行解壓縮
處理結果:
Img2 壓縮完後解壓縮結果圖 |
Img3 原圖 |
Img3 壓縮完後解壓縮結果圖 |
檔案大小示意圖 平均壓縮率 = 13.99MB (Img 1 原圖) / ( 3.06MB (Img1 壓縮檔大小) + 13.99MB (Img 1 原圖) / 5.10MB (Img1 壓縮檔大小) + 13.99MB (Img 1 原圖) / 2.93MB (Img1 壓縮檔大小) ) / 3 = 4.03 |
沒有留言:
張貼留言