2021年6月7日 星期一

s1071242 影像處理作業 6



一、作業說明:

請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。

二、使用環境:


python3.8
openCV 4.5.1
windows 10


三、方法:

壓縮:

1. 以 split()切分成r,g,b通道

2. 用flatten()將r,g,b轉成1維陣列

3. 對B,G,R做RLE

4. 壓縮好的資料以{數量1,字元1},{數量2,字元2}...}的方式儲存。


5.存成指定的格式

解壓縮:

1. 讀取height,width和B,G,R資料,要用UTF-8f = open("D:/img1.1071242", "r",encoding='UTF-8')不然會error


2. 用reshape()將array轉成(height, width, channel)

3. 用merge()將r,g,b合併成圖片

4.show圖片出來



執行結果
圖一 解壓縮率:43
圖二 解壓縮率:3
圖三 解壓縮率:46
平均壓縮率 =(43+3+46)/3=30

解壓縮還原








沒有留言:

張貼留言