s1093332 作業6

   Assignment6 : Run-Length Base Image Compression

功能:

    請設計一個基於 Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率 (compression ratio)。

開發環境:Windows11 + Visual Studio 2022 + Opencv4.7.0

程式說明:

  1. 以灰階模式讀取圖片
  2. 接收一個Mat型態的圖片作為輸入,並返回壓縮後的資料,以vector<pair<uchar, int>>的形式表示。使用雙重迴圈遍歷圖片的每個像素值,並使用計數變數來記錄連續相同像素值的個數。如果當前像素值與前一個像素值相同,則計數增加;如果不同,則將前一個像素值和計數添加到壓縮數據中,然後更新前一個像素值和計數。最後函式返回壓縮後的數據。


  3. 將壓縮數據儲存到二進位檔案中。
  4. 接收原始圖片檔案名稱和壓縮後檔案名稱作為輸入,計算並返回壓縮率。
  5. 顯示輸入影像。


成果展示:

  • 圖一 :
  • 圖二 :
  • 圖三:
  • 個別檔案壓縮後輸出結果:


  • 壓縮率:

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6