s1101416 Homework #5
1122 Digital Image
Processing Assignment #5
學號:s1101416 姓名:李柏翰
主題:Run-Length Based Image Compression 影像壓縮練習
專案目標:
設計一個基於Run-Length 的壓縮方法,對圖檔作無失真壓縮後儲存成新檔案。並敘述壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。
開發平台:
作業系統–Microsoft Windows 11 家用版(23H2)
開發環境–Visual Studio Code
套件–OpenCV 4.20
程式語言–Python 3.10.11
壓縮的方法 :
基於Run-Lengt,先對圖像的每個通道(紅、綠、藍)進行獨立處理。接著將每個通道的像素值展開為一維數組,然後遍歷這些數據。當遇到連續相同的像素值時,記錄該像素值及其連續出現的次數,並以 (count, value) 的形式儲存。最後生成壓縮數據。
壓縮的格式:
壓縮數據被存儲在一個純文字文件中,每個通道的壓縮數據以一行表示。
每一行對應一個圖像通道(紅、綠、藍)。
每一行由(count,value)組成的字符串表示,這些組以空格分隔。
流程:
- 讀取圖片
- 分離通道:將圖片分為紅、綠、藍三個通道。
- 壓縮通道數據:對每個通道數據應用 RLE 壓縮。
- 儲存壓縮數據:將壓縮數據以txt格式儲存。
- 讀取壓縮數據並解壓縮
- 合併通道並顯示結果
- 計算壓縮率:壓縮檔/原檔
成果展示與討論:
備註: img1為原檔, img1_compressed為壓縮檔, img1_decompressed為解壓縮檔
影片連結:
https://drive.google.com/file/d/1w5AwbaeYM-mTs9brZZflq5B1t6BiJwUm/view?usp=sharing
留言
張貼留言