2021年6月6日 星期日

s1073344 影像處理作業6

作業說明

請設計一個基於Run-Length的壓縮方法,對圖檔作無失真壓縮後儲存成新檔案

作業環境

Windows 10

anaconda

python 3.8.5

OpenCV 4.5.1

實作方法

壓縮

1. 讀入彩色圖片後用split()把RGB分開

2. 將二維的RGB用flatten()轉為一維

3. 在一維的RGB後加上圖片大小的資料後,用RLE演算法做壓縮,得到三個陣列

4.將三個陣列以savez()壓縮成 .npz檔

解壓縮

1.用load()讀入 .npz檔

2.對RGB做RLE解壓縮得到三個一維資料

3.將一維資料後的圖片大小移除後,用reshape()還原成二維

4.用merge()將二維RGB合併成三維彩色圖檔

結果

壓縮前與壓縮後:

第一張:

第二張:

第三張:

壓縮率:
第一張圖壓縮率為:8337/14322=58.2%
第二張圖壓縮率為:13902/14322=97.0%
第三張圖壓縮率為:7963/14322=55.5%
平均壓縮率為70.2%











沒有留言:

張貼留言