s1093332 作業6
Assignment6 : Run-Length Base Image Compression
功能:
請設計一個基於 Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率 (compression ratio)。
開發環境:Windows11 + Visual Studio 2022 + Opencv4.7.0
程式說明:
- 以灰階模式讀取圖片。
- 接收一個
Mat
型態的圖片作為輸入,並返回壓縮後的資料,以vector<pair<uchar, int>>
的形式表示。使用雙重迴圈遍歷圖片的每個像素值,並使用計數變數來記錄連續相同像素值的個數。如果當前像素值與前一個像素值相同,則計數增加;如果不同,則將前一個像素值和計數添加到壓縮數據中,然後更新前一個像素值和計數。最後函式返回壓縮後的數據。 - 將壓縮數據儲存到二進位檔案中。
- 接收原始圖片檔案名稱和壓縮後檔案名稱作為輸入,計算並返回壓縮率。
- 顯示輸入影像。
留言
張貼留言