1. 作業說明:
- Run-length Based Image Compression練習
設計一個基於Run-Length的壓縮方法,對彩色圖檔作無失真壓縮後,存成新檔案。
2. 開發環境:
- Windows 10
- Visual Studio 2017
- OpenCV 4.5.5
3. 程式流程:
- 首先,根據提示,輸入要執行的程式。
👉 總共有三種選擇
(1)壓縮彩色檔案,並生成.encode的壓縮檔案
(2)將.encode檔案進行解壓縮,以還原圖檔
(3)計算檔案壓縮率(compression ratio)
- (1)壓縮圖檔
- 輸入.bmp檔案的路徑。
- 宣告一個struct來儲存需要的數值,包括檔案的路徑,圖片的長和寬,使用的顏色,以及RLE結果等等。
- 藉由Run-length方法,撰寫自訂義的函數Image_RLE(),進行壓縮計算。
- 將剛剛經由RLE壓縮後的結果儲存成新檔案,並令其副檔名為.encode。
- 最後,在視窗顯示檔案所儲存路徑以及壓縮成功的提示。
- 壓縮過後的.encode檔案內容格式如下:
img1.encode解壓縮後結果 |
img2.encode解壓縮後結果 |
img3.encode解壓縮後結果 |
- (3)計算壓縮率
- 利用seekg()以及tellg()這兩個指令獲取img1、img2、img3各自的.bmp與.encode的檔案大小,然後計算出各圖檔的壓縮率,以及平均壓縮率,並將結果顯示在視窗。
❗ 平均壓縮率: 1.82692 ❗
沒有留言:
張貼留言