s1093326 作業6

主題: Run-Length Based Image Compression 練習

1.     題目說明:

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

2.     開發環境:

OS: Windows 10

Editor: Visual studio 2022

Language: C++

Package: OpenCV 4.7.0

3.     程式碼說明:

imread() : 讀取圖片

runLengthEncode() : 壓縮圖片
-> pixel=當前的像素值,count=重複次數
-> 若pixel等於下一個像素值,count+1,並繼續往後比對像素值
-> 將pixel和count利用push_back存入vector中

ofstream file("img1.bin", ios::binary) : 建立一個檔案並以二進制形式進行寫入

tellg() : 計算檔案大小

4.     執行結果:
原圖:
原始圖檔與壓縮後圖檔的資料量:



三張圖的平均壓縮率壓縮率:









留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6