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
三、程式功能
- 執行方式
- 使用argv選擇模式及壓縮之圖片或解壓縮之檔案路徑傳入,可使用cmd執行
- 模式:
- 0:壓縮圖片
- 1:解壓縮檔案
- 查看執行結果,壓縮模式會輸出dat檔,解壓縮模式會輸出bmp檔
- 結束程式
- 要離開程式時,按下鍵盤上任意鍵結束執行
四、實作過程
- 判斷選擇模式
- 壓縮模式
- 讀取整張圖片
- 輸出圖片大小至dat檔中
- 透過迴圈歷遍整張圖
- 紀錄連續一樣的顏色之RGB值及次數
- 若有出現不一樣之顏色,將原本紀錄的RGB值及次數輸出至dat檔中
- 讀取圖片及壓縮後dat檔大小,計算compression ratio
- 解壓縮模式
- 讀取dat檔
- 讀取dat檔中圖片大小,並依照該大小宣告一個空白圖片
- 讀取dat檔中RGB值及次數,並填入圖片內
- 輸出還原之圖片
留言
張貼留言