s1091432 作業6

 

作業說明

Run-Length Based Image Compression 練習

附件中為三張利用將晶片高度以色彩視覺化後的圖片。

請設計一個基於 Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。

部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。

開發環境

Windows11

Visual Studio 2022

C++

OPenCV 4.7.0

 

實作過程

 

(1) ifstream imageFile("img1.bmp", ios::binary)以二進制讀取檔案

(2) imageFile.get(),imageData.push_back()從檔案逐個字元讀取資料,並 imageData 向量

(3) Compress()此函式用迴圈遍歷圖像每一個像素值,將連續重複的像素值和計數值存入壓縮資料中

(4) saveCompressedFile()此函式用來儲存壓縮後檔案

 

最終成果

Img1壓縮率約為0.55

img2壓縮率約為0.36

img3壓縮率約為0.47

 

平均壓縮率約為0.47

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1