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
留言
張貼留言