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
沒有留言:
張貼留言