s1093340 作業6

 一、作業說明

附件中為三張利用將晶片高度以色彩視覺化後的圖片。 請設計一個基於 Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率 (compression ratio)。




 二、開發環境

OS: Windows 11
Editor: Visual Studio Code
Compiler: GCC-12.2.0(MinGW-W64)
Language: C++
Package: OpenCV-4.6.0 

 三、程式功能

  1. 執行方式
    • 使用argv選擇模式及壓縮之圖片或解壓縮之檔案路徑傳入,可使用cmd執行
    • 模式:
      • 0:壓縮圖片

      • 1:解壓縮檔案

  2. 查看執行結果,壓縮模式會輸出dat檔,解壓縮模式會輸出bmp檔
    • img1.bmp,壓縮率2.76
      img1.bmp壓縮成果
      img1.bmp解壓縮成果
    • img2.bmp,壓縮率1.65
      img2.bmp壓縮成果
      img2.bmp解壓縮成果

    • img3.bmp,壓縮率2.89
      img3.bmp壓縮成果
      img3.bmp解壓縮成果
    • 平均壓縮率2.43

  1. 結束程式
    • 要離開程式時,按下鍵盤上任意鍵結束執行

 四、實作過程

  1. 判斷選擇模式
    • 壓縮模式
      1. 讀取整張圖片
      2. 輸出圖片大小至dat檔中
      3. 透過迴圈歷遍整張圖
      4. 紀錄連續一樣的顏色之RGB值及次數
      5. 若有出現不一樣之顏色,將原本紀錄的RGB值及次數輸出至dat檔中
      6. 讀取圖片及壓縮後dat檔大小,計算compression ratio
    • 解壓縮模式
      1. 讀取dat檔
      2. 讀取dat檔中圖片大小,並依照該大小宣告一個空白圖片
      3. 讀取dat檔中RGB值及次數,並填入圖片內
      4. 輸出還原之圖片

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6