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


留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6