2022年5月30日 星期一

s1083346 作業6

Run-Length Based Image Compression練習


附件中為三張利用將晶片高度以色彩視覺化後的圖片。

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

部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。


開發環境:

Windows10

Vscode

Python3.9.6

Opencv-Python_4.5.5.62


程式想法:

一開始讀入圖片後,先將圖片B,G,R值用split()分開,再來使用flatten()將各通道變成一維陣列

接著針對每一個通道進行RLE壓縮,舉例:如果資料是1,1,1,2,2,3

那就將他變成3,1,2,2,1,3

壓縮完之後,將圖片的長 寬 RGB的長度 還有RGB的值存入npz檔案中

再來用getsize()取得圖片大小,然後得到圖片壓縮率和平均壓縮率


成果:



Demo影片:https://youtu.be/pPuPsDEsNw8





沒有留言:

張貼留言