作業內容:
附件中為三張利用將高度以色彩視覺化後的圖片。
請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression
ratio)。
Coding環境:
l
Windows 10 2004
l
Visual Studio Code 1.54.1
l
Anaconda 4.8.3
l
Python 3.9.1
l
OpenCV 4.5.1
程式說明:
Encode:
1.
讀取.bmp檔
2.
分別處理每個通道的數值,並分別儲存
3.
將Height, Width,
Channels等資訊做為Header輸出
4.
將各個通道的資料個別輸出一行寫入.3315檔
Decode:
1.
讀取.3315檔
2.
先讀取Header
3.
根據Header的資訊逐行讀取每個通道的資料
4.
根據Header的資訊還原成Height * Width的圖片
5.
輸出成.bmp檔
Compression ratio:
1.
img1.bmp 7.69/13.9*100% =
55.32%
2.
img2.bmp 13.1/13.9*100% =
94.24%
3.
img3.bmp 7.14/13.9*100% =
51.36%
4.
平均66.97%
處理結果:
Img1.bmp壓縮前後對比
Img3.bmp壓縮前後對比
沒有留言:
張貼留言